gpt4 book ai didi

performance - 有关 x86 字符串指令性能的可靠信息?

转载 作者:行者123 更新时间:2023-12-03 05:17:18 24 4
gpt4 key购买 nike

常见的问题是,在执行相同的操作时,rep movsbrep movsd(或在 64 位上,rep movsq)慢得多。然而,我已经在一些现代机器上进行了测试,并且在大范围的缓冲区大小(10 字节到 2 兆)上,运行时间都是相同的(直到测量噪声)。到目前为止,我刚刚在 2 台机器(32 位 Intel Atom D510 和 64 位 AMD FX 8120)上进行了测试。

  • 是否有任何现代 x86(32 位或 64 位)计算机中 rep movsbrep movsd(或 rep movsq)?

  • 如果没有,最后出现显着差异的机器是什么机器,显着程度如何?

我从希望避免 cargo 崇拜的角度提出这个问题,为了使用 rep movsd 或将内存分解为未对齐的头/尾和对齐的中间rep movsq 如果这样做没有实际好处...

最佳答案

这里有很多基准:instlatx64.atw.hu

例如(Intel Core 2 Duo E6700):

REP MOVSB   BW in L1D:13.04 B/c  34829MiB/s
REP MOVSW BW in L1D:13.29 B/c 35493MiB/s
REP MOVSD BW in L1D:13.40 B/c 35783MiB/s

这表明存在差异,但很小。

SandyBridge 的这个有点奇怪:

REP MOVSB   BW in L1D:25.50 B/c  86986MiB/s
REP MOVSW BW in L1D:18.09 B/c 61721MiB/s
REP MOVSD BW in L1D:27.47 B/c 93693MiB/s

似乎在某些 Atom 上存在很大差异(似乎在 D5xx 中消失了,所以你只是错过了它):

REP MOVSB   BW in L1D: 0.53 B/c    990MiB/s
REP MOVSW BW in L1D: 1.93 B/c 3598MiB/s
REP MOVSD BW in L1D: 3.74 B/c 6960MiB/s

我还没有发现任何其他可以被认为是新的东西有如此大的差异。

关于performance - 有关 x86 字符串指令性能的可靠信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12359228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com