Ryzen 9 3950X は 16 core 32 thread の CPU です。少し前まで 4 core 8 thread の CPU をメインに使っていたことを考えると、これ 1つで従来の PC の 4台分に相当します。
実際に速度を調べてみました。UE4 のコンパイル速度の比較は下記の通り。本当に 4台分、コンパイル時間が 1/4になっています。
● UE4 4.24.0 (GitHub版) の Engine コンパイル時間
CPU | Core | Thread | Build 時間 (A) | Build 時間 (B) |
---|---|---|---|---|
Ryzen 9 3950X | Zen2 | 16C/32T | 966 (16:06) | 833 (13:53) |
Ryzen 7 1800X | Zen | 8C/16T | 2481 (41:21) | 2240 (37:20) |
Core i7-6700K | Skylake | 4C/8T | 3787 (63:07) | 3564 (59:24) |
・Build 時間の単位は秒、値が小さい方が高速
Skylake Core i7-6700K で 1時間かかるビルドが Ryzen 9 3950X だと 16分で終わっています。4倍高速です。1800X と比べても 2.5倍速くなっています。これくらい速ければ分散ビルドなしで十分使えそうです。
ちなみに条件を統一するため 3台とも SATA 接続の SSD の上でビルドしています。NVMe ならもっと時間を短縮できると思われます。
・(A) は Total のビルド時間で UnrealHeaderTool と ShaderCompileWorker が含まれています。また UHT のヘッダ生成は並列化されないためシングルスレッドの時間が含まれます。
・(B) は Engine の ParallelExecutor だけの時間で、最後の Link 以外は並列化されています。シングルスレッドの時間が短いため (A) よりも Thread 数の差が出やすくなります。
・一旦 clean してから Engine\Build\BatchFiles\Build.bat を使い DevelopmentEditor Win64 でビルドしています。
↑16 core でも小さい Socket AM4。箱の中身は殆どが黒いスポンジ。
● ARM デバイスの比較に使っているコンパイルベンチの速度
CPU | Core | Clock | Thread | Build 時間 WSL |
---|---|---|---|---|
Ryzen 9 3950X | Zen2 | 3.5 GHz | 16C/32T | 10 (00:10) |
Ryzen 7 1800X | Zen | 3.6 GHz | 8C/16T | 26 (00:26) |
Core i7-6700K | Skylake | 4.0 GHz | 4C/8T | 40 (00:40) |
Core i7-4790K | Haswell | 4.0 GHz | 4C/8T | 41 (00:41) |
・Build 時間の単位は秒、値が小さい方が高速
これも UE4 とほぼ同じで 4倍速くなっています。詳しくはこちら
● vfpbench の結果
CPU | Thread | Single-Thread | Multi-Thread |
---|---|---|---|
Ryzen 9 3950X | 16C/32T | 123.3 GFLOPS | 1898.0 GFLOPS |
Ryzen 7 1800X | 8C/16T | 61.4 GFLOPS | 476.2 GFLOPS |
Core i7-6700K | 4C/8T | 135.6 GFLOPS | 542.3 GFLOPS |
・GFLOPS の値が大きい方が高速。単精度のみ。
1.9 TFLOPS (1898 GFLOPS) という見たことがない数値が出ました。あくまでメモリアクセスを無視した理想的な条件での値です。だいたい PS4 の GPU に相当します。実際のアプリケーションでこの速度が出るわけではないので参考程度にお願いします。
下記は計測結果のログです。Single Thread 単精度のみ。倍精度はまだ調査中です。
Group 0: Thread=32 Clock=3.493000 GHz (mask:ffffffff) SingleThread HP max: - SingleThread SP max: 122.851 GFLOPS SingleThread DP max: 52.722 GFLOPS MultiThread HP max: - MultiThread SP max: 1894.097 GFLOPS MultiThread DP max: 954.959 GFLOPS * Group 0: Thread=1 Clock=3.493000 GHz TIME(s) MFLOPS MOPS FOP IPC SSE mulss (32bit x1) n8 : 0.244 8605.0 8605.0 ( 1 2.5) SSE addss (32bit x1) n8 : 0.244 8591.2 8591.2 ( 1 2.5) FMA vfmaddss (32bit x1) n8 : 0.317 13239.6 6619.8 ( 2 1.9) FMA vfmaddss (32bit x1) n12 : 0.365 17246.0 8623.0 ( 2 2.5) SSE mulps (32bit x4) n8 : 0.245 34194.1 8548.5 ( 4 2.4) SSE addps (32bit x4) n8 : 0.243 34520.1 8630.0 ( 4 2.5) SSE mul+addps (32bit x4) n8 : 0.183 45837.4 11459.3 ( 4 3.3) FMA vfmaddps (32bit x4) n8 : 0.303 55334.8 6916.9 ( 8 2.0) FMA vfmaddps (32bit x4) n12 : 0.364 69104.3 8638.0 ( 8 2.5) SSE ml+ad+adps (32bit x4) n9 : 0.218 43313.8 10828.4 ( 4 3.1) SSE mulss (32bit x1) ns4 : 0.368 5699.9 5699.9 ( 1 1.6) SSE addss (32bit x1) ns4 : 0.368 5698.4 5698.4 ( 1 1.6) SSE mulps (32bit x4) ns4 : 0.367 22812.0 5703.0 ( 4 1.6) SSE addps (32bit x4) ns4 : 0.366 22916.4 5729.1 ( 4 1.6) AVX vmulps (32bit x8) n8 : 0.258 65052.1 8131.5 ( 8 2.3) AVX vaddps (32bit x8) n8 : 0.260 64581.5 8072.7 ( 8 2.3) AVX vmul+addps (32bit x8) n8 : 0.157 106474.3 13309.3 ( 8 3.8) FMA vfmaddps (32bit x8) n8 : 0.318 105391.7 6587.0 ( 16 1.9) FMA vfmaddps (32bit x8) n12 : 0.408 123302.0 7706.4 ( 16 2.2) FMA vfma+mlps (32bit x8) n12 : 0.408 92570.0 7714.2 ( 12 2.2) FMA vfma+adps (32bit x8) n12 : 0.345 109457.1 9121.4 ( 12 2.6) AVX vml+ad+adps (32bit x8) n9 : 0.345 54644.5 6830.6 ( 8 2.0) FMA vfma+ml+adps (32bit x8) n9: 0.307 81930.4 8193.0 ( 10 2.3)
関連ページ
・Compile Benchmark
・VFP Benchmark Log 計測結果まとめ
関連エントリ
・UE4 UnrealBuildTool の設定 BuildConfiguration.xml
・UE4 UnrealBuildTool VisualStudio の選択を行う
・UE4 UnrealBuildTool *.Build.cs のコードを共有する
・AMD CPU Ryzen とコンパイル時間の比較 (2)
・AMD CPU Ryzen とコンパイル時間の比較