【发布时间】:2015-03-25 04:40:56
【问题描述】:
我正在开发一些数值软件,其性能很大程度上取决于数值精度(即浮点数、双精度等)。 我注意到 ARM NEON 并不完全符合 IEEE754 浮点标准。有没有办法在 x86 CPU 上模拟 NEON 的浮点精度?例如模拟 NEON SIMD 浮点运算的库。
【问题讨论】:
-
请注意,NEON 算术 应该是单精度 754 - “不合规”主要来自在 754 指定多种模式(舍入、异常)的某些方面具有固定值陷印、异常处理等)如果精度比速度更重要,请考虑针对 VFP 而不是 NEON。
-
NEON 没有将非规范化视为零吗?如果是这样,我相信 x86 中有一个设置可以做同样的事情。
-
确实,我认为(基于对 ARM ARM 的快速浏览,不能保证)重要的位是刷新为零,舍入到最近(除了整数转换)和默认 NaN - 由于 NEON 本质上是 IEEE-754 的子集,如果设置得当,任何完全兼容的实现都应该产生相同的行为。
-
您真的依赖精度吗?如果是这样,您将需要改用 VFP——它是完全符合单/双设置的。还是您只是在追求可重复性?