2013-01-22 33 views
3

Intel® 64 and IA-32 Architectures Optimization Reference Manual列出了各种CPU指令的延迟和吞吐量数字。x86:超越函数的延迟和吞吐量

对于超越函数(FSIN等),一些数字被列为范围(第C-29页)。脚注4解释:

超时指令的延迟和吞吐量在动态执行环境中可能有很大差异。这些说明只给出一个近似值或一系列值。

我的问题是:什么因素影响这些指令的吞吐量和延迟?我认为论证的价值是一个因素。还有其他吗?

回答

4

除了参数之外,其他飞行指令的混合可能会影响延迟和吞吐量。这些指令是微码的,这意味着它们产生一系列μops,需要与其他指令竞争ALU资源;如有争议,表现可能受到不利影响。

+2

击败了我 - 我正要说很多相同的事情。我唯一要补充的是强调像'FSIN'这样的操作可能是通过某种连续的近似来实现的,比如评估一个短序列,这将意味着需要内部资源的多个步骤,从而有更多的机会'冲突'与其他操作。 – JasonD

2

x87控制字指定计算的准确性(64位,53位或24位尾数),它可能会影响超越函数的性能,尤其是那些内部使用除法或平方根的函数。一般来说,我建议避免使用三角x87指令,因为通过设计它们对于大输入值非常不准确。