咨询ARM NEON vrsqrteq及vrecpeq intrinsic的计算精度
ARM NEON
vrsqrteq 和 vrecpeq 的精度规范 ARM其实在架构参考手册(而非仅Neon程序员指南)里明确了这些近似指令的最低精度保证,所有兼容对应ARM架构的处理器都必须满足这个要求,不会因具体型号而降低标准:
1. vrsqrteq(近似倒数平方根)的精度
- 单精度浮点版本(
vrsqrteq_f32):架构强制要求最大相对误差不超过 1.5×2⁻¹²(约0.0366%)。 - 双精度版本(
vrsqrteq_f64,仅ARMv8及以上支持):最大相对误差不超过 1.5×2⁻²⁶(约0.0000004%)。
2. vrecpeq(近似倒数)的精度
- 单精度版本(
vrecpeq_f32):同样有架构级最低保证,最大相对误差不超过 1.5×2⁻¹²(约0.0366%)。 - 双精度版本(
vrecpeq_f64):最大相对误差不超过 1.5×2⁻²⁶(约0.0000004%)。
补充:如果需要更高精度,可以配合对应的迭代指令优化——比如用vrsqrtsq对vrsqrteq的结果做一次迭代,单精度的相对误差能提升到约2⁻²⁴,接近单精度浮点的原生精度极限;vrecpsq对vrecpeq的结果迭代后也能达到类似的高精度。
内容的提问来源于stack exchange,提问作者jonicho
相关产品推荐
相关产品推荐

