SSE计划在AMD上花费的时间比在英特尔上要长得多

San*_*dri 6 optimization sse

我正在使用SSE2指令优化算法.但是当我测试性能时,我遇到了这个问题:

I)英特尔e6750

  1. 做4次非SSE2算法需要14.85秒
  2. 做一次SSE2算法(处理相同的数据)需要6.89秒

II)Phenom II x4 2.8Ghz

  1. 做4次非SSE2算法需要11.43秒
  2. 做一次SSE2算法(处理相同的数据)需要12.15秒

任何人都可以帮助我为什么会这样?我对结果感到很困惑.

在这两种情况下,我都使用-O3作为标志来编译g ++.

PS:算法不使用浮点数学,它使用SSE的整数指令.

Pau*_*l R 4

在过去 5 年左右的时间里,英特尔对其 SSE 实施进行了重大改进,而 AMD 并没有真正跟上。最初,两者实际上都只是 64 位执行单元,128 位操作被分解为 2 个微操作。不过,自从推出 Core 和 Core 2 以来,Intel CPU 就拥有完整的 128 位 SSE 实现,这意味着 128 位操作有效地获得了 2 倍的吞吐量提升(1 个微操作与 2 个微操作)。较新的 Intel CPU 还具有多个 SSE 执行单元,这意味着对于 128 位 SIMD 指令,每个时钟吞吐量可以获得 > 1 条指令。