CPU ターボブースト: 14.04 未満の温度制限を変更

CPU ターボブースト: 14.04 未満の温度制限を変更

Kubuntu 14.04 をインストールしましたが、CPU ターボ周波数に問題があります。それについていろいろ読みましたが、正しい答えが見つかりません。

私の Lenovo Y580 ノートブックには、2.40GHz の i7-3630QM CPU と 3.20GHz ターボが搭載されています。CPU をフル ロードすると (Blender で 8 スレッドのレンダリングを実行)、すべてのコアの周波数が約 3.2GHz に跳ね上がりますが、数秒後に温度が上昇すると、周波数は 2.4GHz に下がり、レンダリング中はその周波数のままになります (ファンは最大速度では動作しません)。

Ubuntu 12.10 を使用したときはこの問題は発生しませんでしたが、13.10 および 14.04 では発生します。

私のノートパソコンのクーラーは本当に優れているので、フルスピードのターボブーストで過熱の問題はありません (Ubuntu 12.10 では、CPU の温度は 3.2GHz で 85 ~ 90°C でした)。そのため、フルスピードで使用したいと考えています。この (温度?) 制限なしで、Ubuntu 14.04 でターボブースト付きの CPU をフル 3.2GHz 速度で使用するにはどうすればよいでしょうか?

(terdon と話し合った後) 問題は、ファンが高温に反応する前に CPU 周波数が下げられることだと思います。CPU が 3.2GHz から 2.4GHz に下げられた後、ファンは一瞬回転しますが、CPU 周波数がすでに下げられているため、発生する熱が少なくなり、ファンの回転数は下がります。CPU が冷えた後、周波数が再び 3.2GHz に上がっても、2.4GHz のままであれば問題ありません。

いくつかの測定値:

レンダリングが開始されたときの i7z プログラムの出力:

 Cpu speed from cpuinfo 2394.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) 2394 MHz                                                                                                              
  CPU Multiplier 24x || Bus clock frequency (BCLK) 99.75 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 2493.75 MHz (99.75 x [25])                                                                                            
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  34x/33x/32x/32x                                                                                      
  Real Current Frequency 3192.01 MHz [99.75 x 32.00] (Max of below)                                                                                             
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp                                                                     
        Core 1 [0]:       3191.98 (32.00x)       100       0       0       0       0    83                                                                      
        Core 2 [2]:       3192.01 (32.00x)      99.8       0       0       0       1    92                                                                      
        Core 3 [4]:       3192.00 (32.00x)       100       0       0       0       0    88                                                                      
        Core 4 [6]:       3192.00 (32.00x)       100       0       0       0       0    76                                                                      
...

そして 5 ~ 10 秒後 (これもフル ロードの場合):

Cpu speed from cpuinfo 2394.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) 2394 MHz                                                                                                              
  CPU Multiplier 24x || Bus clock frequency (BCLK) 99.75 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 2493.75 MHz (99.75 x [25])                                                                                            
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  34x/33x/32x/32x                                                                                      
  Real Current Frequency 2462.52 MHz [99.75 x 24.69] (Max of below)                                                                                             
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %   C7 %  Temp                                                                     
        Core 1 [0]:       2394.01 (24.00x)       100       0       0       0       0    65                                                                      
        Core 2 [2]:       2394.00 (24.00x)       100       0       0       0       0    74                                                                      
        Core 3 [4]:       2462.43 (24.69x)       100       0       0       0       0    71                                                                      
        Core 4 [6]:       2462.52 (24.69x)      99.9       0       0       0       0    61        
...

回答をよろしくお願いします。

答え1

これはバグではなく、機能です。温度を確認してください。CPU 速度が低下する唯一の理由は、過熱しているためです。表示される最初の出力を見てください。コアの 1 つが 92°C で動作しています。これはそもそもかなり高温であり、クロック速度が低下する前にさらに高くなった可能性があります。

CPUが耐えられる最高温度は次のように確認できます。ランニングsensorsたとえば、私の Intel i7 の場合:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +77.0°C  (high = +95.0°C, crit = +105.0°C)
Core 2:       +79.0°C  (high = +95.0°C, crit = +105.0°C)

したがって、私のマシンでは、95.0°C は高温と見なされ、105°C はマシンがシャットダウンする臨界温度です。仕様は少し異なるかもしれませんが、92.0°C は間違いなく高温です。

今あなたできるCPU のクロック速度を強制的に一定に保ちます。これは CPU ガバナーによって制御されます。おそらく に設定されていますondemandが、次のオプションも利用できます。

  • パフォーマンスCPUを可能な限り高い周波数に保つ
  • 省電力CPUを可能な限り低い周波数に保つ
  • ユーザースペース利用可能な周波数情報をユーザーレベル(/sysファイルシステム経由)にエクスポートし、CPU周波数のユーザー空間制御を可能にします。
  • オンデマンドCPU 使用率に応じて CPU 周波数をスケーリングします (ユーザー空間の周波数スケーリング デーモンと同様ですが、カーネル内にあります)
  • 保守的オンデマンドのように動作しますが、段階的に頻度が増加します。

ガバナーを、たとえば「パフォーマンス」に変更するには、次のコマンドを実行します。

echo "performance" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

しかし、おそらく結果は、高温に達したときにコンピュータがシャットダウンするだけでしょう。また、安全機能がどのように実装されているかはわかりませんが、それでもスケールダウンされる可能性があります。いずれにせよ、重要な点はハードウェアに重大な損傷を与える可能性があるため、これを行うことは望ましくありません。

コンピュータが特定の温度を超えないようにするのには十分な理由があり、それをいじりたくないはずです。温度制限を実際に無効にする方法は知りませんし、知っていたとしても教えたくありません。もっと簡単な方法はありますが、温度安全制限を無効にすることは、コンピュータを破壊する良い方法であることは間違いありません。

答え2

長い検索の末、このページで私の質問に対する答えを見つけました: http://www.webupd8.org/2014/04/prevent-your-laptop-from-overheating.html

古いバージョンではacpi-cpufreqターボブーストをうまく制御できませんが、intel_pstateドライバーではthermald制御できます。 を有効にしintel_pstateてインストールしましたthermald。これで、CPU はターボブーストモードで 3.2GHz でほぼ連続的に動作できるようになりました。これは、Blender でのレンダリング中に約 25 ~ 30 % のパフォーマンス向上を意味します。

残念ながら、それは熱の増加も意味するので、CPU コアの温度は 90 ~ 100°C 前後で推移し、時々自動的にスロットルが効かなくなります。tredon さんの言うとおり、ファンを掃除する必要があります。:)

Intel のページでは、CPU の最大接合部温度は 105 °C と記載されており、これを超えるとサーマル スロットリングがアクティブになるため、CPU の過熱を心配する必要はありません。

残念ながら、 を設定して使用するための便利な例が見つからないthermaldため、デフォルトのオプションのままにしていますが、読んだところによると、冷却に大いに役立つ可能性があるようです。

関連情報