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で不満のない方は、そのままでも良いような気がします。
書込番号:16213032
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点
このスレッドに書き込まれているキーワード
「インテル > Core i5 4670K BOX」の新着クチコミ
| 内容・タイトル | 返信数 | 最終投稿日時 |
|---|---|---|
| 52 | 2016/07/28 5:06:15 | |
| 29 | 2016/06/05 19:35:15 | |
| 4 | 2014/08/17 4:23:04 | |
| 7 | 2014/03/29 13:43:00 | |
| 10 | 2014/06/05 5:40:40 | |
| 4 | 2014/01/20 0:42:44 | |
| 5 | 2014/01/05 22:16:22 | |
| 4 | 2013/12/21 4:05:32 | |
| 14 | 2013/12/23 13:59:17 | |
| 9 | 2013/11/24 21:49:08 |
クチコミ掲示板検索
最適な製品選びをサポート!
[CPU]
新着ピックアップリスト
-
【欲しいものリスト】パソコン選定
-
【欲しいものリスト】外付けHDD
-
【欲しいものリスト】a
-
【Myコレクション】Windows11対応でCPU換装とディスク増強
-
【Myコレクション】pc
価格.comマガジン
注目トピックス
(パソコン)
CPU
(最近3年以内の発売・登録)







