Linuxがゲーマーコンピューターをどのように処理できるのか疑問に思っていたので、ゲーマーコンピューターを作成しましたが、GeForceはAMDほどLinuxを好まないので、最後のものを選びました。
AMD Ryzen 7 1800X CPUとRadeon RX 560D GPUを搭載したコンピューターを構築しました。Vegaは購入するには高すぎるためです。ベンチマークでは、560が現時点で最も費用対効果の高い比率であると述べています。
いくつかの調査の結果、接尾辞Dは、DのないRX560と比較して、消費電力を節約するためにクロック速度がわずかに遅いことを意味することを発見しました。
ランダムゲーム中に数え切れないほどのクラッシュが発生した後、問題はGPUの過熱であることがわかりました。ファンの速度は、CPUのファンの速度に従う傾向がありますが、もちろん、一部のゲームではCPUの必要性はGPUよりはるかに少なくなっています。
CPUではなくGPU温度に基づいてファン速度をカスタマイズすることで問題を部分的に解決しました。ファン速度は徐々に増加し、摂氏50度で最高速度を達成しますが、問題は次のとおりです。一部のゲームでは常に最高速度を維持します。 、そして最終的にはまだクラッシュします。
クラッシュの説明:画面が点滅してから真っ黒になり、GPUファンが停止し、キーボードのLEDが点滅してからオフになり、同じようにマウスを動かします。他のCPUファンが作動し続け、システムが永久にフリーズし続けることもあり、システムが自動的に再起動することもあります。
再起動が必要なため、システムログに関するヒントが見つかりませんでした。最初はカーネルパニックでしたが、kdumpを使用してカーネルを複製しても、システムがクラッシュし、回復できませんでした。 。
Windowsで同じ問題が発生するかどうかはわかりませんが、そうではないと強く信じています。Windowsで同じ問題を抱えている人を見たことがないので、質問は次のとおりです。カーネルにGPUを簡単にするように指示する方法があります。過熱しそうなときは、GPUのクロック速度を自動的に下げるだけですか?
私は解決策を見つけました。/sys/class/drm/card0/device
にいくつかのファイルがあります。ファイルpp_dpm_mclk
はGPUメモリクロックを示し、ファイルpp_dpm_sclk
はGPUコアクロックを示します。
$ egrep -H . /sys/class/drm/card0/device/pp_dpm_*
/sys/class/drm/card0/device/pp_dpm_mclk:0: 300Mhz
/sys/class/drm/card0/device/pp_dpm_mclk:1: 1500Mhz *
/sys/class/drm/card0/device/pp_dpm_pcie:0: 2.5GB, x8 *
/sys/class/drm/card0/device/pp_dpm_pcie:1: 8.0GB, x16
/sys/class/drm/card0/device/pp_dpm_sclk:0: 214Mhz *
/sys/class/drm/card0/device/pp_dpm_sclk:1: 481Mhz
/sys/class/drm/card0/device/pp_dpm_sclk:2: 760Mhz
/sys/class/drm/card0/device/pp_dpm_sclk:3: 1000Mhz
/sys/class/drm/card0/device/pp_dpm_sclk:4: 1050Mhz
/sys/class/drm/card0/device/pp_dpm_sclk:5: 1100Mhz
/sys/class/drm/card0/device/pp_dpm_sclk:6: 1150Mhz
/sys/class/drm/card0/device/pp_dpm_sclk:7: 1196Mhz
また、ファイルpower_dpm_force_performance_level
はプロファイルを示し、low
、auto
、またはmanual
を使用できます。デフォルトはauto
であり、low
は実行されます。常に最低のクロックで動作しますが、これは私が望むものではないため、manual
に設定し、GPUの温度に応じてクロックを変更し続けるスクリプトを作成しました。
manual
プロファイルのクロックを変更するには、pp_dpm_sclk
で始まる行を表す番号をファイル0
に書き込んでください。私の場合は7
までです。
私のスクリプトに興味があるなら ここにあります 。