web-dev-qa-db-ja.com

Ubuntu 14.04でAMD Turbo Coreを有効にする方法

AMD A8-4500mベースのラップトップでUbuntu 14.04(3.13.0-24-generic kernel)を使用していますが、最近、AMD Turbo Coreがまったく機能しないことに気付きました。すべてがWindowsで機能しますが、Linux CPUの周波数は1.9 GHzを超えることはできません(cpufreq-aperfでチェック)。

cpupower frequency-infoの出力は次のとおりです。ブースト状態のサポートの下でアクティブ:noに注意してください。

analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 4.0 us.
  hardware limits: 1.40 GHz - 1.90 GHz
  available frequency steps: 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.40 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.90 GHz and 1.90 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.90 GHz (asserted by call to hardware).
  cpufreq stats: 1.90 GHz:32,63%, 1.80 GHz:0,74%, 1.70 GHz:0,50%, 1.60 GHz:1,20%, 1.40 GHz:64,93%  (9287)
  boost state support:
    Supported: yes
    Active: no
    Boost States: 2
    Total States: 8
    Pstate-Pb0: 2800MHz (boost state)
    Pstate-Pb1: 2300MHz (boost state)
    Pstate-P0:  1900MHz
    Pstate-P1:  1800MHz
    Pstate-P2:  1700MHz
    Pstate-P3:  1600MHz
    Pstate-P4:  1400MHz
    Pstate-P5:  900MHz

その他のテスト(オンデマンドスケジューラとバックグラウンドで1920x1080 H.264ビデオをデコードするffmpegの3つのインスタンスで実行):

[m132@m132 turbostat]$ Sudo cpupower monitor
[Sudo] password for m132: 
     |Mperf               || Idle_Stats         
 CPU | C0   | Cx   | Freq || POLL | C1   | C2   
    0| 97,78|  2,22|  1821||  0,00|  0,00|  0,00
    1| 97,84|  2,16|  1821||  0,00|  0,00|  0,00
    2| 99,22|  0,78|  1807||  0,00|  0,00|  0,00
    3| 99,18|  0,82|  1808||  0,00|  0,00|  0,00
[m132@m132 turbostat]$ Sudo ./turbostat 
cor CPU   GHz  TSC time
        1.81 1.90   5**
  0   0 1.81 1.90   5**
  1   1 1.81 1.90
  2   2 1.80 1.90
  3   3 1.81 1.90

編集: Trinityシリーズのプロセッサには、ソースに独自のBAPMスイッチがあるようです。 drivers/gpu/drm/radeon/trinity_dpm.cにあり、安定性の問題のため、MSIボードに対してのみ(執筆時点で)有効になっています。有効にするには、このファイルを開き、次の行を見つけます。

    pi->enable_bapm = false;

Falseをtrueに変更してから、新しいカーネルをコンパイルしてインストールします。取得する必要があります カーネルパニック 今すぐ作業を後押しします。 CPUパワーもGPUと共有されるため、GPUも使用している場合、利用可能な最高周波数が得られることはほとんどありません。

8
m132

[2015年更新]

Linux 3.16以降:

  • bapmの値は、モジュールパラメーターとして提供できます( here を参照)。

  • bapmの値は、Kaveri、Kabini、およびデスクトップTrinity、Richlandシステムではデフォルトで1に設定されています( here を参照)。その結果、Turbo Coreが有効になります。

つまり、カーネル3.16以降では、Turbo Coreがすぐに動作するはずですradeonで多くの場合に動作します。

Debianを実行している場合、またはUbuntuを実行しており、上記が当てはまらない場合は、 AMD Turbo CoreでDebianシステムをセットアップする方法(2Dまたはコンソール/サーバーに焦点を当てる)を参照してくださいAPU最大のエネルギーと計算効率のために?

[2014-Aug-07を更新]

unix-stackexchange.comでの詳細分析 を公開しました。これには(少なくとも私にとっては)いくつかの驚きが含まれています。 ondemandガバナーがperformanceよりも潜在的に悪い(少なくともRichland A10-6700を使用)、fglrxなどの疑わしいトリックを使用して短期ブーストを改善し、突然補償する必要があるなど長期的にはそのためです。これをよく見てくれてうれしいです。

[元の回答]

Ubuntu 14.04サーバーを使用して、A10-6700でシステムを構成中です。

  • cat /proc/cpuinfoの出力は、プロセッサーのブーストを反映しませんし、反映しません。ブーストは、潜在的に複雑な基準に基づくチップ上の自律的な決定です。 ここでそれについて読む
  • cpufreq-infoの出力には利用可能なブースト周波数は表示されませんが、cpupower frequency-infoの出力には表示されます。 A10-6700の場合、通常の3700、3400、2700、2300、1800 MHzに加えて、4300 MHz(Pb0)、4200 MHz(Pb1)、3900 MHz(Pb2)が表示されます。
  • cpufreq-aperfの出力(modprobe msrの後)は、cpupower monitorの出力と同等です。これらのツールで表示される周波数は、ブーストを反映していると想定されています。
  • 標準のビデオドライバー、またはカーネルのradeonモジュールでさえ、A10-6700がブースト周波数を使用することに成功しませんでした(stress --cpu 2を使用)。
  • ATI/AMD fglrxモジュールがカーネルにロードされると、プロセッサは2つのコアを永続的にブーストします(そして、明らかに一時的に残りのコアもブーストします)。これは、Xを使用せずに、または構成することなくテストされました。

ブーストの賛成または反対の決定は、APUによって自律的に行​​われます。この時点での私の推測では、APUは、統合グラフィックスユニットが適切に初期化されない限り、現在の電力消費がブーストの余地を残すかどうかを判断できないと考えられます。

標準モジュールのビデオ出力は、fglrxがロードされたときの出力とは異なります。したがって、VGAモジュールを使用したまま、カーネルがAPUをおそらく必要な「スマート」(電力損失認識)モードにできるかどうかしか推測できません。

これが整理されるまで、単純にfglrxをロードします。マイナス面は、 それを構築するには多くのものが必要 サーバー上では不要であり、コンパイル後に削除する必要があるということです。

また、fglrxのサイズはほぼ9 MBです。それは問題ではありませんが、この場合、ほとんどが死んだ貨物であることを知っていても、私はあまり幸せになりません。

[2014年7月24日編集]

私は今 このバグを報告した

別のバグも報告されていることに気付きました。実際に fglrxを使用し、Dynamic Power Managementを使用してみてください モードの場合。

5
Run CMD

Ubuntu 13.10で同じAMD A8-4500mを実行しているThinkpadでも同じ問題があります。私は今日これを見つけましたが、私の英語はそれほどよくないので、私はそれを理解しませんでした。

https://www.kernel.org/doc/Documentation/cpu-freq/boost.txt

お役に立てば幸いです。

私が見つけた主な始まりは、Turbo Coreが11.10以降サポートされていないことです。それは私が見つけたすべてです。私が間違っていることを証明してください。

1
Mojo Jojo