web-dev-qa-db-ja.com

cpugovernor intel_pstateを安定させる方法は?

CPUガバナーで特定の周波数に設定しようとしています。しかし、私はそうすることができません。プロセッサは12 * Intel(R)Xeon(R)CPU E5-2620 v3 @ 2.40 GHzです

Intel_pstateドライバーを使用すると、1.20 GHz -3.20 GHzの周波数範囲が得られます。現在の周波数スケーリングでは、特定の周波数に設定できません。ガバナーをパフォーマンスに設定しました。しかし、それは役に立ちません。 cpufreq-set -r -f 3.2GHz –機能しません。

低い周波数を設定しようとしました。 cpufreq-set -r -d 3.2GHz;エラーは表示されませんが、それでも周波数は時間とともに変化し続けます。

Intel_pstate(ブート時)を無効にし、acpiドライバーをアクティブにしました。しかし、acpiを使用すると、12コアで最大2.4 GHzが得られます。この2.4 GHzでは、cpufreq-set -r -fを使用して常に安定させることができます。しかし、3.2 GHzに設定することはできません。

Cpugovernorの使用を設定する方法を教えてください。周波数を3.2 GHzに設定できますか?私のOSはubuntu 14.4.3 LTSであり、カーネルバージョンは3.19.0-25-genericです。

Cpufreq-infoには次の結果が表示されます。

analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 1.20 GHz - 3.20 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.20 GHz and 3.20 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 2.85 GHz.

他のコアでも、結果はこのようになり、現在の周波数は時間とともに変化します。

screenshot_i7z

pstate freqスクリーンショット

4
Sanjoy Basak

プロセッサが常に3200MHzの最大ターボレートに常にあることはできません。一度に多くのコアをアクティブにすると、最大周波数は2.6Ghzになり、その制限はプロセッサ自体の基本です(i7zスクリーンショット-Max Turbo Multiplier行も参照)。ただし、それに応じて最小および最大パーセント値を設定することにより、すべてのCPUを常に2.6 GHzで簡単に使用できます。ただし、プロセッサは非常に低負荷の状態で自力で後退する可能性があるため、依然として頻度が低くなることがあります。ターボをオフに設定してパフォーマンスモードを設定すると、すべてのCPUを常に2.4 GHzで効率的に実行できます(ただし、プロセッサ自体は非常に低い負荷でオフになります)。

2.6Ghzを設定する例(計算を適切に行った場合):

echo "81" | Sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
echo "81" | Sudo tee /sys/devices/system/cpu/intel_pstate/min_perf_pct

非ターボ法の例:

echo "1" | Sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
$ Sudo su
# for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "performance" > $file; done
# exit
exit
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
performance
performance
performance
performance
performance
3
Doug Smythies

私は少し前に同じ「問題」を抱えていましたが、長時間の調査の後にこの単純なコマンドラインツールを見つけました。

https://github.com/pyamsoft/pstate-frequency

インストールするには、リポジトリの指示に従ってください。

スクリプトは、クロック速度governorおよびturbo boost

ただし、新しいIntel CPUは高度に最適化されており、独自に電源管理を行うため、CPUを強制することはできず、希望するものを提案することができます。

pstate-frequencyの説明からこれを見てください:

最新のIntelプロセッサの場合、周波数はプロセッサ自体によって制御され、ソフトウェアに公開されるP状態はパフォーマンスレベルに関連しています。周波数を単一の周波数に設定できるという考え方は、Intel Coreプロセッサのフィクションです。スケーリングドライバが単一のP状態を選択した場合でも、プロセッサが実行される実際の周波数はプロセッサ自体によって選択されます。

最高のクロック速度(恒久的に3.2 GHz(理想的には))とパフォーマンスガバナを取得するには、スクリプトのインストール後にこれを実行します。

Sudo pstate-frequency --color -S -p 3

pstate-frequency -G --colorを使用して、現在設定されている電源プランを取得できます。

インテルi7-4790Kを使用している場合、すべてのコアで4400 MHzを永続的に使用できます。

現在のCPUクロックを確認するには、次を使用できます。

watch -n 0,3 'cat /proc/cpuinfo | grep "MHz"'

これにより、すべてのCPUスレッドのクロック速度がリストされます。

私の場合、電源プラン「3」([...] -p 3)(パフォーマンス)を設定した後、次のようになります。

cpu MHz     : 4399.843
cpu MHz     : 4400.156
cpu MHz     : 4391.093
cpu MHz     : 4400.000
cpu MHz     : 4400.000
cpu MHz     : 4400.468
cpu MHz     : 4400.156
cpu MHz     : 4361.718
2
Flatron