このページのスレッド一覧(全1スレッド)![]()
- 「質問の絞込み」の未返信、未解決は最新1年、解決済みは全期間のクチコミを表示しています
CPU > インテル > Core i5 4670K BOX
いつものshort[256][4096]のFFTフィルタを1000回行う自作ベンチマークを実施してみました。
時間は1回あたりです。
メモリクロックにハンディがあるので、その辺は割り引いて考えてください。
Core i5 4670k(DDR3-2400)
AVX2+FMA:1.19ms(Ivyより17%増速)
AVX :1.19ms(Ivyより17%増速)
SSE3 :1.72ms(Ivyより10%増速)
Core i5 3570(DDR3-1866)
AVX :1.40ms
SSE3 :1.90ms
AVXからFMA3への書き換えですが、ベクトルの回転(高校2年生で習うあれ)をするときに、ソースコードでは「加減算」の内側に「乗算」が来るので、この二つをFMAの対応命令に置き換え、括弧の対応関係を直せば簡単でした。ただ、FFTのプログラムといえどもAVX2やFMAに変更できる箇所は意外に少なかったので、AVXだけのときと有意差は出ませんでした。
Ivy Bridgeのスコアが以前の1.5msより良くなっているのは、64bit環境への最適化を行い、ループアンロールでレジスタを16本近く使えるように見直したためです。やはりハードとソフトは両輪ですね。
長い間待っていたのですが、「拡張命令で増速!」とはいかず、ハードウェアそのものがやや高速化したようです。Ivyで不満のない方は、そのままでも良いような気がします。
11点
メモリクロックをDDR3-1600にそろえ、プログラムのロジックを見直して再度測定しました。
(AVX2は性能向上しましたが、AVXは低下しました。)
(単位は1回あたりの処理時間[ms] 左はHaswell、右はIvy Bridge)
AVX2:1.18(HaswellのAVXより+5%)
AVX:1.24 / 1.58(+27.4%)
SSE:1.69 / 2.18(+28.9%)
FPU:20.48 / 21.90(6.9%)
Managed:282.54 / 303.42(+7.3%)
世間の性能に関する評価は辛いようですが、SSE命令を中心に伸びていると思います。
普通の命令では7%程度といったところのようです。
書込番号:16225983
5点
再度SSEやAVXのロジックを見直し、最初と同じ条件で測定してみました。(Haswell DDR3-2400)
AVX2+FMA(4Threads):1.12ms
AVX(4Threads):1.17ms
SSE(4Threads):1.63ms
FPU(1Thread):20.07ms
Managed(1Thread):278.24ms
AVX2とAVXの差は4%程度となりました。SSEも増速しています。
下の2つからわかるように、シングルスレッドの倍精度浮動小数点演算の場合はAVX2の17.9倍、.NETのマネージコードでごく普通に書くとFPUの13.8倍も時間がかかります。
特にエンコードなどCPU高負荷が続くような処理は、「良いソフトウェアを使うと処理が速くなる」ことがご理解いただけると思います。
書込番号:16230740
3点
x86_64で整数レジスタが8本から16本に増えたとは言え、やはり少ないですよね。
他のRISCなら32本はあるのに。
拡張命令向けのレジスタをちまちま追加しているのをみて、あれでいいのかとたまに思います。
書込番号:16231224
1点
| さん、返信ありがとうございます。
レジスタの本数ですが、x86の8本からx64の16本になっただけでも相当な効果がありました。
32本あれば、さらに効果的なのも事実ですが、こればかりはアプリケーション側からどうにもなりません。
レジスタが増えた(x86->x64)で体感したメリットは、「大きなループを回してもレジスタが溢れない」(ループアンロールできる、処理の粒度を大きくとれる)ということでした。主にFFTという典型的な処理で遊んでいるので、今の仕様はそれなりに「工夫すれば何とかなる」状態だと感じました。
また、AVXからAVX2になると、256bit->128bit×2->256bitのような、分解・合成処理が減り、256bitのまま処理できるので、レジスタも節約できます。
この1週間(AVX2で6%増速)で効果があったのはループアンロールと変数のconst化(使い回さない)で、コンパイラが用のなくなった変数をどんどん破棄して、レジスタを効率的に使ってくれるようでした。裏返すと、増えたレジスタを使い切ろうとするとループアンロールをすることになり、保守性は下がります。
書込番号:16232251
0点
もう一度ロジックを見直しました。(Haswell DDR3-2400 x64最適化)
SSE:1.62ms
AVX:1.12ms(SSEより44%速い)
AVX2+FMA:1.03ms(AVXより8%速い)
もういじるところがなくなってきたので、拡張命令ごとの速度比較はこれにて確定と考えます。
64bitに最適化しているので、32bit環境ではレジスタが溢れて大幅に速度低下しそうです。
3月末にはIvy BridgeでSSE 2.53ms、AVXで1.62ms程度だったので、割とがんばったと思います。
書込番号:16249862
0点
最初|前の6件|次の6件|最後
クチコミ掲示板検索
最適な製品選びをサポート!
[CPU]
新着ピックアップリスト
-
【欲しいものリスト】外付けHDD
-
【欲しいものリスト】a
-
【Myコレクション】Windows11対応でCPU換装とディスク増強
-
【Myコレクション】pc
-
【Myコレクション】メインアップグレード最終稿
価格.comマガジン
注目トピックス
(パソコン)
CPU
(最近3年以内の発売・登録)






