|
|
1
5
当您启用优化时,非SSE代码将被完全消除,而SSE代码仍保留在那里,因此这种情况很简单。更有趣的是当优化关闭时:在这种情况下,SSE代码仍然较慢,而循环的代码是相同的。
最内层循环体的SSE代码:
我对此不确定,但我猜: 如您所见,编译器仅通过4个32位存储来存储4个浮点值。然后通过16字节的加载将其读回。这会导致商店转发暂停,发生这种情况时成本高昂。您可以在英特尔手册中查找。标量版本中不会出现这种情况,这会导致性能差异。
|
|
|
theflash · 将已知大小的切片在铁锈中组合成一个阵列 1 年前 |
|
|
Josep Pueyo · 如何优化向量的以下条件赋值? 1 年前 |
|
|
Community wiki · C中有哪些耗时的操作? 2 年前 |