私はベンチマークにDebian 8 amd64マシンを使用しています。実験中は、CPUを固定周波数(できれば可能な限り最大)で動作させたいと思います。これにより、結果の変動の原因としてCPUクロック速度が除外されます。
少し読んだ後、正しいことは、CPUガバナーをに変更することですperformance
。これについては、Linuxカーネルのドキュメントで説明しています。
CPUfreqガバナーの「パフォーマンス」は、CPUをstatic_min_freqとscaling_max_freqの境界内で最も高い周波数に静的に設定します。
悲しいことに、およそ詳細scaling_min_freq
とはscaling_max_freq
付属していません。使用するCPU周波数が間隔の最大値であるため、うまくいけば問題ありません。
だから私はcpufreq-setを使用してこのガバナーを有効にしました:
$ cat / sys / devices / system / cpu / cpu * / cpufreq / scaling_governor パフォーマンス パフォーマンス パフォーマンス パフォーマンス
そして、適切な対策として、BIOSでターボブーストモードを無効にしました。
$ cat / sys / devices / system / cpu / intel_pstate / no_turbo 1
上記のパフォーマンスガバナーの説明に基づいて、CPUクロック速度の変動はないと予想します。しかし、繰り返し実行するcpufreq-info
と、クロック速度が変動します。
$ cpufreq-info | grep 'current CPU fr' 現在のCPU周波数は4.00 GHzです。 現在のCPU周波数は3.99 GHzです。 現在のCPU周波数は4.00 GHzです。 現在のCPU周波数は4.00 GHzです。 $ cpufreq-info | grep 'current CPU fr' 現在のCPU周波数は4.00 GHzです。 現在のCPU周波数は4.00 GHzです。 現在のCPU周波数は4.00 GHzです。 現在のCPU周波数は3.96 GHzです。 $ cpufreq-info | grep 'current CPU fr' 現在のCPU周波数は4.00 GHzです。 現在のCPU周波数は4.00 GHzです。 現在のCPU周波数は4.00 GHzです。 現在のCPU周波数は3.94 GHzです。 $ cpufreq-info | grep 'current CPU fr' 現在のCPU周波数は4.01 GHzです。 現在のCPU周波数は4.00 GHzです。 現在のCPU周波数は4.00 GHzです。 現在のCPU周波数は3.98 GHzです。
この変動は、ハードウェア、BIOS、カーネル、またはその他の要因によるものですか?CPU周波数がまったく変動しないように設定する方法はありますか?