Intel の CPU には Intel Turbo Boost Technology が搭載されています。
Turbo Boost を ON にしておくと、計算を行なっている時などに負荷が高いコアのみ動作クロックを定格クロック以上に上昇してくれます。
しかし、Linux で一般的に CPU のクロック数を確認するときに参照されている /proc/cpuinfo では Turbo Boost Technology の効果を確認することができません!
また、CPU をオーバークロックした際も /proc/cpuinfo では確認することができません。
今回の記事では、Linux での CPU の周波数の確認方法を記事にしました。
クロック数の確認方法
linux の CPU クロック数の確認方法として一般的なコマンドは
cat /proc/cpuinfo | grep MHz
だと思います。しかし、/proc/cpuinfo には定格以上の周波数の情報は反映されません!
そこで必要になってくるのが i7z です。Ubuntu を使用している場合は、apt-get で簡単にインストールできます。Fedora でも Fedora24 までなら dnf でインストールできます。
sudo apt-get install i7z
インストール後に
sudo i7z
と入力すれば、リアルタイムでの CPU のクロック数を表示してくれます。
ちなみに、手元の Intel core i7-7700 で実行した時の結果は以下のようでした(アイドル時)。
Cpu speed from cpuinfo 3599.00Mhz cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc Linux's inbuilt cpu_khz code emulated now True Frequency (without accounting Turbo) 3599 MHz CPU Multiplier 36x || Bus clock frequency (BCLK) 99.97 MHz Socket [0] - [physical cores=4, logical cores=8, max online cores ever=4] TURBO ENABLED on 4 Cores, Hyper Threading ON Max Frequency without considering Turbo 3698.97 MHz (99.97 x [37]) Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is 42x/41x/41x/40x Real Current Frequency 798.39 MHz [99.97 x 7.99] (Max of below) Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore Core 1 [0]: 798.04 (7.98x) 1 99.9 0 0 27 0.6827 Core 2 [1]: 795.24 (7.95x) 1 100 0 0 28 0.6777 Core 3 [2]: 797.92 (7.98x) 1 99.9 0 0 26 0.6827 Core 4 [3]: 798.39 (7.99x) 1 100 0 0 27 0.6821 C0 = Processor running without halting C1 = Processor running with halts (States >C0 are power saver modes with cores idling) C3 = Cores running with PLL turned off and core cache turned off C6, C7 = Everything in C3 + core state saved to last level cache, C7 is deeper than C6 Above values in table are in percentage over the last 1 sec
ちなみに、cat /proc/cpuinfo | grep MHz の実行結果は以下のようになります。
cpu MHz : 800.024 cpu MHz : 800.024 cpu MHz : 800.024 cpu MHz : 800.024 cpu MHz : 800.244 cpu MHz : 799.804 cpu MHz : 799.804 cpu MHz : 800.024
gaussian 計算中のクロック数
管理人の所有している Intel core i7-7960x の定格周波数は 2.8 GHz です。/proc/cpuinfo の情報で確認しているとアイドル時に 1.2 GHz、gaussian での計算時には 2.8 GHz となっています。しかし、i7z で確認するときちんときちんと 4.0 GHz になっていました!
Cpu speed from cpuinfo 2924.00Mhz cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating via tsc Linux's inbuilt cpu_khz code emulated now True Frequency (without accounting Turbo) 2924 MHz CPU Multiplier 28x || Bus clock frequency (BCLK) 104.43 MHz Socket [0] - [physical cores=16, logical cores=16, max online cores ever=16] TURBO ENABLED on 16 Cores, Hyper Threading OFF Max Frequency without considering Turbo 3028.43 MHz (104.43 x [29]) Max TURBO Multiplier (if Enabled) with 1/2/3/4/5/6 Cores is 44x/44x/44x/44x/44x/44x Real Current Frequency 4054.39 MHz [104.43 x 38.82] (Max of below) Core [core-id] :Actual Freq (Mult.) C0% Halt(C1)% C3 % C6 % Temp VCore Core 1 [0]: 4053.11 (38.81x) 99.8 0 0 0 40 1.0942 Core 2 [1]: 4051.55 (38.80x) 99.8 0 0 0 43 1.0806 Core 3 [2]: 4052.76 (38.81x) 99.9 0 0 0 41 1.0948 Core 4 [3]: 4054.04 (38.82x) 99.9 0 0 0 44 1.1063 Core 5 [4]: 4051.57 (38.80x) 99.8 0 0 0 39 1.1113 Core 6 [5]: 4053.88 (38.82x) 99.8 0 0 0 41 1.1252 Core 7 [6]: 4051.90 (38.80x) 99.8 0 0 0 44 1.1135 Core 8 [7]: 4053.74 (38.82x) 99.8 0 0 0 39 1.1270 Core 9 [8]: 4052.35 (38.81x) 99.9 0 0 0 45 1.0848 Core 10 [9]: 4054.33 (38.82x) 99.9 0 0 0 45 1.0946 Core 11 [10]: 4054.36 (38.82x) 99.8 0 0 0 42 1.1064 Core 12 [11]: 4054.39 (38.82x) 99.9 0 0 0 44 1.1012 Core 13 [12]: 4053.21 (38.81x) 99.9 0 0 0 41 1.1111 Core 14 [13]: 4053.12 (38.81x) 99.9 0 0 0 45 1.1064 Core 15 [14]: 4054.28 (38.82x) 99.9 0 0 0 40 1.1321 Core 16 [15]: 4054.00 (38.82x) 99.4 0 0 0 42 1.1329
下の表にも書いてある通り、Intel core i9-7960x のた16 コア full load 時のターボブーストの周波数は 3.6 GHz ですが、少しオーバークロックしてあるので、4.0 GHz となっています。
ちなみに、CPU をオーバークロックすると gaussian の計算時間は若干早くなりますが、大きな差はありません。あまりコスパはよくありません。
linux オーバークロックで検索すると GPU のオーバークロックのページばかり出てきたので、まとめてみました。
参考リンク
関連する記事
- gaussian スクラッチファイルの保存先
- gaussian のスクラッチファイル
- 【Enthalpy】B3LYP での計算誤差について【Underestimation】
- DFT は、正確な関数を目指す道から外れつつある
- Gaussian 16 を自作 PC で動かしてみた!
- いやいや、密度汎関数理論は正確な関数を目指す道から外れてはいない!
- GPU を用いた並列計算
- 自作 PC をつくってみた!
- Fedora25 に nVIDIA のドライバーをインストール
- 構造最適化の閾値は、何を意味しているのか?
- 量子化学計算で a.u. を使う理由 〜Why Atomic Unit?〜