Intel® 64 and IA-32 Architectures Optimization Reference Manual列出了各种CPU指令的延迟和吞吐量数据。
对于超越函数(FSIN
等),一些数字被列为范围(第C-29页)。脚注4解释说:
超越指令的延迟和吞吐量在动态执行环境中可能会有很大差异。这些说明仅给出了近似值或一系列值。
我的问题是:哪些因素会影响这些指令的吞吐量和延迟?我想这个论点的价值是一个因素。还有其他吗?
答案 0 :(得分:4)
除了这个论点之外,其他指令的混合可能会对延迟和吞吐量产生影响。这些指令是微编码的,这意味着它们生成一系列μops,需要与ALU资源的其他指令竞争;如果出现这种争论,可能会对表现产生不利影响。
答案 1 :(得分:2)
x87控制字指定计算的准确性(64位,53位或24位尾数),它可以影响超越函数的性能,尤其是那些内部使用除法或平方根的函数。一般来说,我建议避免使用三角x87指令,因为根据设计,它们对于大输入值非常不准确。