Quartus benchmark v19.1 pro
はじめに
QuartusでFPGAデザインをコンパイルする際にCPUのコア数と動作周波数の関係を探る(適当に)
OCは自己責任で
大体のグラフ・数値は3回計測最小値
検証環境
| Host Spec | |
|---|---|
| CPU | サッカーボール |
| MEM | DDR4 2400MHz 16GB |
| M/B | Z390-F GAMING |
| HDD | WD Black 1TB |
| OS | CentOS7 |
| FPGA Spec | |
|---|---|
| FPGA | Arria 10 GX (GX1150) |
| IDE | Quartus Prime Version 19.1 Pro Edition |
検証デザイン
ストリーム流れるやつ
全体検証で 8bit 版,
Fitter 検証で 256bit 版を使用する
コンパイル結果は以下
| 8bit | 256bit | |
|---|---|---|
| Fmax | 219.64MHz | 143.86MHz |
| ALMs | 1085 (< 1%) | 33,298 (8%) |
| Registers | 730 (< 1%) | 4811 (< 1%) |
| RAMs | 15 (< 1%) | 183 (7%) |
検証方法
CPU Core 数をマザーボードから調整
1, 2, 4, 8 Core で計測
CPU 動作周波数をマザーボードから調整
3, 4, 5GHz, Normal(3.6-5.0GHz)で計測
結果
8bit版によるトータルコンパイル時間の比較
1Coreでの周波数変更によるコンパイル時間の比較
5GHzでのCore数変更によるコンパイル時間の比較
256bit版 Fitter の並列比較 (各5GHz)

8Core時、Route, Finalizeで落ちた
1Coreは計測できなかった(面倒くさくて)
おまけ
Core i9-9900Kのターボブーストは
|1Core|2Core|4Core|6Core|8Core|
|:-:|:-:|:-:|:-:|:-:|:-:|
|5.0GHz|5.0GHz|4.8GHz|4.7GHz|4.7GHz|
となっている
8Core x 5GHzでは長時間コンパイルに耐えることが難しい
8Core時の周波数を抑えつつシングルコアの周波数を上げてみる
||1Core|2Core|4Core|6Core|8Core|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|Default|5.0GHz|5.0GHz|4.8GHz|4.7GHz|4.7GHz|
|#1|5.2GHz|5.1GHz|5.0GHz|5.0GHz|4.8GHz|
|#2|5.2GHz|5.2GHz|5.1GHz|5.0GHz|4.9GHz|
|#3|5.2GHz|5.2GHz|5.2GHz|5.1GHz|5.0GHz|
|#4|5.3GHz|5.3GHz|5.0GHz|5.0GHz|4.9GHz|
結果
#4は完走せず
#3は警告が表示される
一方、5.2GHzに関しては特に問題なさそう
結論
8Core16Thread x 5.0GHz が早い (defの約9割)
少数コア時に高クロックに振ると幸せになれるかも




