首页 > 解决方案 > Intel 3770K汇编代码——align 16有意想不到的效果

问题描述

我首先在这个问题中发布了这个问题:

X86 64 位模式下的索引分支开销

从那以后,我在其他一些汇编代码程序中注意到了这一点,其中 align 16 几乎没有效果,或者在某些情况下会使情况变得更糟。在我之前的问题中,我还比较了对齐到 16 的偶数或奇数倍数,在小而紧的循环的情况下存在显着差异。

我遇到此问题的最新示例是使用 4 项 arctan 系列(Machin 类型 forumla)将 pi 计算到大约 100 万位的程序,结合多线程,这是东京大学使用的方法的迷你版本2002 年计算超过 1 万亿位数

http://www.super-computing.org/pi_current.html.en

对齐对计算时间几乎没有影响,但删除它们会使从小数到小数的转换从 7.5 秒减少到 6.8 秒,减少了 9% 以上。在某些情况下重新排列计算代码将时间从 98 秒增加到 109 秒,增加了大约 11%。然而,最糟糕的情况是我之前的问题,根据循环的位置,紧密循环的时间增加了 36.5%。

我想知道这是否特定于我正在运行这些测试的英特尔 3770K 3.5 ghz 处理器。

标签: performanceassemblyx86intelmicro-optimization

解决方案


推荐阅读