SSE2命令を使用したアルゴリズムの最適化に取り組んでいます。私は、パフォーマンスをテストしていたとき、しかし、私はこの問題に遭遇していますSSEプログラムは、IntelよりもAMDのほうがかなり長いです。
I)のインテルE6750
- 4回行う非SSE2アルゴリズムはSSE2アルゴリズム(プロセス1つの時間をやって14.85秒
- を取ります同じデータ))のPhenom II X4の2.8GHzの4をやって
II 6.89秒かかります回非SSE2アルゴリズムは11.43秒
- を取る1時間を行うSSE2アルゴリズム(同じデータを処理)が
どちらの場合でも、フラグとして-O3を使用してg ++でコンパイルしています。
PS:このアルゴリズムは浮動小数点演算を使用せず、SSEの整数命令を使用します。
同じバイナリで、CPUのクロックが高く( "Deneb"と仮定して)同じキャッシュサイズの場合、ほぼ2倍の長さですか?バマー。私が考えることのできる唯一のことは、この世代のIntel CPUと比較して、この世代のAMDプロセッサに3倍のレイテンシがあるためです(最新世代とは異なります)。他の指示には、確かにどこかのサイクルがあるかもしれませんが、すべてがすべて2倍の速度で動作するべきではありません。 (AMDプロセッサは "遅延を再フォーマットする"ことも知られていますが、float/intを混ぜ合わせていないので、それは問題ではありません) – Damon
20%を超える差は奇妙に聞こえます。 AMD Phenomのバージョンは何ですか? L1/L2/L3キャッシュサイズ?アルゴリズムの実装とは何ですか? – alecco