simd - Haswell FMA 指令生成异常

标签 simd fma

我正在使用 Intel Haswell CPU 的 FMA 指令来优化一些计算。

但是,我发现即使我将 MXCSR 寄存器设置为 DNZ 和 FTZ 模式,这些指令也会生成异常。

我如何强制这些 FMA 指令生成 0 而不是非正规值?

我正在处理单精度 float 据。

最佳答案

只是为遇到这个问题的任何人提供一个明确的答案:

据了解,FMA 指令确实遵守 DAZ 和 FTZ。提问者实际上得到了 NaN 结果,但由于对表示的字节序的混淆,将它们误解为非规范化。

关于simd - Haswell FMA 指令生成异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32657390/

相关文章:

c++ - AVX2:计算 512 个 float 组的点积

c++ - SIMD 值的合理散列?

opencv - 优化SIMD直方图计算

c++ - openmp collapse with inner loop reduction

floating-point - Z3:浮点 FMA 语义

fortran - 在对两个数组的乘积求和时,gfortran 或 ifort 编译器会明智地使用 SIMD 指令吗?

c++ - 关于快速 SIMD/面向数据设计的内存布局的直觉

c++ - vector 中的 Intrinsics Neon Swap 元素

c - 有没有可以使用libc中的fma函数的场景?

performance - X86 Broadwell 上的吞吐量 FMA 和乘法