【发布时间】:2015-04-22 05:50:14
【问题描述】:
根据documentation,math.h中有一个fma()函数。这非常好,而且我知道 FMA 的工作原理以及它的用途。但是,我不太确定这在实践中是如何实现的?我最感兴趣的是x86 和x86_64 架构。
是否有用于 FMA 的浮点(非向量)指令,可能由 IEEE-754 2008 定义?
是使用FMA3还是FMA4指令?
在依赖精度的情况下,是否存在确保使用真正的 FMA 的内在因素?
【问题讨论】:
-
在 x86 和 x86_64 上,如果被告知允许 gcc 发出 fma 指令(
-mfma或-mfma4或-march=something其中something是支持 fma 的处理器)。在 Linux 上,您可以查看 glibc 中的sysdeps/ieee754/dbl-64/s_fma.c以了解库函数回退的样子。
标签: floating-point ieee-754 instruction-set fma