「Ryzen」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:CPU en:Ryzen {{Related articles start}} {{Related|パフォーマンスの最大化}} {{Related|ブートパフォーマンスの向上}} {{Related|カ…」)
 
 
(同じ利用者による、間の12版が非表示)
7行目: 7行目:
 
{{Related|マイクロコード}}
 
{{Related|マイクロコード}}
 
{{Related articles end}}
 
{{Related articles end}}
  +
== マイクロコードのサポートの有効化 ==
Ryzen は2017年の Q1 から AMD によって発売されたマルチスレッドの高性能プロセッサです。[[Wikipedia:ja:Zen (マイクロアーキテクチャ)|Zen マイクロアーキテクチャ]]を使用した最初の CPU になります。Intel の Broadwell-E プロセッサシリーズと競合し、特に Core i7-6900K との直接対決を目標としています。
 
   
  +
{{Pkg|amd-ucode}} パッケージをインストールしてマイクロコードのアップデートを有効にしてください。詳しくは[[マイクロコード]]のページを見てください。アップデートによってシステムの安定性に問題をきたす問題が解決されます。マイクロコードはプロプライエタリですが、アップデートすることが'''強く推奨されます'''。
== インストール ==
 
   
=== カーネル ===
+
== Ryzenの微調整 ==
   
  +
=== 電圧、消費電力、温度の監視 ===
* 最適な性能を得るには {{Pkg|linux-zen}} カーネルを[[インストール]]します。Linux ZEN はあらゆるプロセッサで優れた速度と安定性を提供します。デフォルトカーネルと同じ電力を消費するため'''デスクトップ'''で使用する場合のみ推奨です。
 
* システムの反応性を向上させるパッチが含まれている {{AUR|linux-ck}} カーネルをインストールすることもできます。デスクトップに重点が置かれていますが、あらゆるワークロードで機能します。高い電力効率を目的としているため、CK カーネルは'''ノートパソコン'''ユーザーに推奨します。
 
{{Warning|{{AUR|linux-ck}} は Arch Linux やその派生ディストリビューションでは公式にサポートされていません。場合によっては問題が発生することがあります。}}
 
   
  +
{{Pkg|lm_sensors}} はデフォルトで温度を監視できるはずです。しかし、消費電力や電圧などの詳しい情報については、{{AUR|zenpower3-dkms}} が必要です。GUI ベースの監視ツールとしては、Zen 3 CPUs には {{AUR|zenmonitor}} または {{AUR|zenmonitor3-git}} を使用してください。
GRUB を設定してインストールしたカーネルを使って起動するようにしてください。GRUB を使っていない場合、あなたが使っているブートローダーの設定ファイルを作成してカーネルを使ってください。
 
   
  +
=== 電力管理、電力不足、オーバークロック ===
{{Note|カーネルについて詳しくは[[カーネル]]のページを見てください。}}
 
   
  +
* {{App|RyzenAdj|RyzenAdj は、Ryzen モバイルプロセッサの電力管理設定を調整できるコマンドラインツールです。|https://github.com/FlyGoat/RyzenAdj|{{AUR|ryzenadj-git}}}}
{{Tip|カーネルのアップグレードによって環境が壊れたときのためにバックアップとして {{Pkg|linux-lts}} パッケージをインストールすると良いかもしれません。}}
 
  +
* {{App|Ryzen Controller|Ryzen Controller は RyzenAdj の GUI です。|https://gitlab.com/ryzen-controller-team/ryzen-controller|{{AUR|ryzen-controller-bin}}}}
  +
* {{App|amdctl|amdctl は AMD CPUs のアンダー/オーバークロック/電圧調整を行うコマンドラインツールで、現在、AMD CPU ファミリ 10h、11h、12h、15h、16h、17h、19h をサポートしています。|https://github.com/kevinlekiller/amdctl/|{{AUR|amdctl}}}}
  +
* {{App|ZenStates-Linux|ZenStates はクロック速度と電圧を調整するコマンドラインツールです。詳しいセットアップの例は [https://forum.level1techs.com/t/overclock-your-ryzen-cpu-from-linux/126025 Level1Techs] フォーラムにあります。|https://github.com/r4m0n/ZenStates-Linux|{{AUR|zenstates-git}}}}
  +
* {{App|ryzen_smu|Ryzen SMU は、特定の AMD Ryzen プロセッサの SMU (System Management Unit) へのアクセスを公開する Linux カーネルドライバーです。例として、5800x3D のアンダーボルテージに使用できます([https://github.com/svenlange2/Ryzen-5800x3d-linux-undervolting/ このスクリプト] を参考にしてください)。|https://gitlab.com/leogx9r/ryzen_smu|{{AUR|ryzen_smu-dkms-git}}}}
   
  +
== カーネルのコンパイル ==
=== グラフィックドライバー ===
 
   
  +
Ryzen サポートの有効化については [[Gentoo:Ryzen#Kernel]] を参照してください。[[カーネル#公式サポートカーネル|公式にサポートされているカーネル]]はデフォルトで必要な設定を持っています。
{{Pkg|mesa}} パッケージを[[インストール]]してください。3D アクセラレーションのための [[Wikipedia:ja:ダイレクト・レンダリング・インフラストラクチャ|DRI]] ドライバーが含まれています (Ryzen APU や AMD GPU のみ)。
 
   
  +
== トラブルシューティング ==
=== マイクロコードのサポートの有効化 ===
 
   
  +
=== ランダムリブート ===
{{Pkg|amd-ucode}} パッケージをインストールしてマイクロコードのアップデートを有効にしてください。詳しくは[[マイクロコード]]のページを見てください。アップデートによってシステムの安定性に問題をきたす問題が解決されます。マイクロコードはプロプライエタリですが、アップデートすることが強く推奨されます。
 
   
  +
ランダムな再起動が発生している場合は、[[Gentoo:Ryzen#Random_reboots_with_mce_events]] を参照してください。
== Ryzen の設定 ==
 
   
  +
Ryzen 5000 シリーズ、特に 5950X と 5900X の高エンドモデルでは、[https://bugzilla.kernel.org/show_bug.cgi?id=212087 このカーネルバグ] に示されているように、おそらく 5.11+ カーネルに関連して、Linux でのわずかな不安定さが存在しているようです。インターネット上の報告を調査して読んでみると、デフォルトの状態では、Windows は Linux カーネルと比較して、CPU をより高い電圧で、より低いピーク周波数で動作させるようです。これは、シリコンロッタリーのドローに応じて、ランダムなアプリケーションのクラッシュや、再起動につながるハードウェアエラーの原因となる可能性があります。次のような dmesg ログでこれらを認識することができます:
=== 電源管理 ===
 
   
  +
kernel: mce: [Hardware Error]: Machine check events logged
[https://github.com/FlyGoat/RyzenAdj RyzenAdj] (CLI) は [https://github.com/FlyGoat FlyGoat] によって作成された、ターミナルエミュレータから Ryzen プロセッサの電源管理を設定するツールです。
 
  +
kernel: mce: [Hardware Error]: CPU 22: Machine Check: 0 Bank 1: bc800800060c0859
  +
kernel: mce: [Hardware Error]: TSC 0 ADDR 7ea8f5b00 MISC d012000000000000 IPID 100b000000000
  +
kernel: mce: [Hardware Error]: PROCESSOR 2:a20f10 TIME 1636645367 SOCKET 0 APIC d microcode a201016
   
  +
CPU の ID とプロセッサ番号は異なる場合があります。この問題を解決するためには、CPU がピーク周波数で動作するときに安定するように、CPU により高い電圧を供給する必要があります。これを実現する最も簡単な方法は、マザーボードの BIOS 経由でアクセス可能な AMD カーブオプティマイザを使用することです。これにアクセスし、4ポイントの正のオフセットを設定すると、CPU が高負荷で受け取る電圧が増加します。これにより、高い熱放散要件のためにオーバークロックの可能性が制限されるかもしれませんが、安定して動作します。詳細については、[https://community.amd.com/t5/processors/ryzen-5900x-system-constantly-crashing-restarting-whea-logger-id/td-p/423321/page/84 このフォーラムの投稿] を確認してください。私が 5950X にこれを行ったとき、私のプロセッサは安定し、周波数と電圧の範囲は Windows で観察されるものにより近くなりました。
{{Tip|{{Pkg|lm_sensors}} を使うことでプロセッサの温度を確認できます。}}
 
   
=== バークロック ===
+
=== スクリンティアリング(APU) ===
   
  +
[[Xorg]] を使用しており、スクリーンティアリングが発生している場合は、[[AMDGPU#Tear free rendering]] を参照してください。
[https://github.com/r4m0n/ZenStates-Linux/ ZenStates-Linux] (CLI) は [https://github.com/r4m0n r4m0n] によって作成された、クロック速度と電圧を設定するツールです。詳しい例が [https://forum.level1techs.com/t/overclock-your-ryzen-cpu-from-linux/126025 Level1Techs] のフォーラムに載っています。
 
  +
=== ソフトロックフリーズ ===
   
  +
このバグはよく知られており、[https://bugzilla.kernel.org/show_bug.cgi?id=196683 bugzilla] と [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1690085 launchpad] で議論されています。すべてのケースでの解決策は同じではありませんが、[https://bugs.launchpad.net/linux/+bug/1690085/comments/69 こちら]は一部のユーザーにとって有効でした。このコマンド{{ic|1=echo rcu_nocbs=0-$(($(nproc)-1))}}の出力をカーネルパラメータとして追加します。このコマンド{{ic|nproc}}はCPUのスレッドを表示するだけです。このオプションを適用するには、{{ic|CONFIG_RCU_NOCB_CPU}} オプションを持つコンパイル済みのカーネル(例:{{Pkg|linux}})が必要です。
== Ryzen の改善 ==
 
   
  +
フリーズの別の原因は、c-statesによって示される省電力管理です。最大の省電力状態であるc6が問題を引き起こすことがあります。カーネルパラメータ{{ic|1=processor.max_cstate=5}}の追加はいくつかのケースで役立ちましたが、他のユーザーはこのオプションが適用されないと報告しています。それに対する解決策として、{{AUR|disable-c6-systemd}}パッケージが役立ちました。使用する前に、{{ic|modprobe msr}}を実行してカーネルモジュールを有効にする必要があります。
=== Ananicy デーモンの有効化 ===
 
   
  +
HP Envy x360 15-bq100naのようなRyzen CPUを搭載したラップトップは、システムがフリーズするCPUソフトロックを経験することがあります。これはカーネルパラメータ{{ic|1=idle=nomwait}}を追加することで回避できます。
[[パフォーマンスの最大化#Ananicy]] を見てください。
 
   
  +
一部のケースでは、カーネルパラメータ{{ic|1=pci=nomsi}}が問題を修正します。
=== Irqbalance ===
 
   
  +
他の場合、問題は単に不良なハードウェアであり、新しいものとしてCPUを保証することで問題が解決するかもしれません。
[[パフォーマンスの最大化#irqbalance]] を見てください。
 
   
  +
=== シャットダウン、再起動、サスペンド時のフリーズ ===
=== CPU 緩和 ===
 
 
[[パフォーマンスの最大化#CPU の脆弱性の緩和をオフにする]]を見てください。
 
 
=== ゲームのパフォーマンス ===
 
 
[[ゲーム]]を見てください。
 
 
== カーネルのコンパイル ==
 
 
Ryzen のサポートの有効化方法については [https://wiki.gentoo.org/wiki/Ryzen#Kernel] を見てください。
 
 
== トラブルシューティング ==
 
   
  +
{{Note|この問題は UEFI を更新することで新しい AGESA ファームウェアで修正されるかもしれません。}}
=== 画面のちらつき (APU) ===
 
   
  +
これは Linux でよくサポートされていない(または全くサポートされていない)C6 c-stateに関連しているようです。
[[Xorg]] を使用していてティアリングが発生する場合、{{ic|"TearFree"}} オプションを有効にすることで問題が解決します:
 
   
  +
この問題を修正するには、UEFI セットアップに移動し、「Power idle control」のようなオプションを探します。その値を「Typical current idle」に変更します。これらの名称はマザーボードの製造元によって異なる場合がありますので、あなたの場合には少し異なるかもしれません。
{{hc|/etc/X11/xorg.conf.d/20-amdgpu.conf|
 
Section "Device"
 
Identifier "AMD"
 
Driver "amdgpu"
 
Option "TearFree" "true"
 
EndSection
 
}}
 
   
  +
他の解決策としては、UEFI セットアップで c-states を無効にするか、{{ic|1=processor.max_cstate=1}}をカーネルコマンドライン引数に追加することが考えられます。
{{Note| {{ic|"TearFree"}} は垂直同期とは違います。}}
 
   
 
== 参照 ==
 
== 参照 ==

2023年8月19日 (土) 21:04時点における最新版

関連記事

マイクロコードのサポートの有効化

amd-ucode パッケージをインストールしてマイクロコードのアップデートを有効にしてください。詳しくはマイクロコードのページを見てください。アップデートによってシステムの安定性に問題をきたす問題が解決されます。マイクロコードはプロプライエタリですが、アップデートすることが強く推奨されます

Ryzenの微調整

電圧、消費電力、温度の監視

lm_sensors はデフォルトで温度を監視できるはずです。しかし、消費電力や電圧などの詳しい情報については、zenpower3-dkmsAUR が必要です。GUI ベースの監視ツールとしては、Zen 3 CPUs には zenmonitorAUR または zenmonitor3-gitAUR を使用してください。

電力管理、電力不足、オーバークロック

  • RyzenAdj — RyzenAdj は、Ryzen モバイルプロセッサの電力管理設定を調整できるコマンドラインツールです。
https://github.com/FlyGoat/RyzenAdj || ryzenadj-gitAUR
  • Ryzen Controller — Ryzen Controller は RyzenAdj の GUI です。
https://gitlab.com/ryzen-controller-team/ryzen-controller || ryzen-controller-binAUR
  • amdctl — amdctl は AMD CPUs のアンダー/オーバークロック/電圧調整を行うコマンドラインツールで、現在、AMD CPU ファミリ 10h、11h、12h、15h、16h、17h、19h をサポートしています。
https://github.com/kevinlekiller/amdctl/ || amdctlAUR
  • ZenStates-Linux — ZenStates はクロック速度と電圧を調整するコマンドラインツールです。詳しいセットアップの例は Level1Techs フォーラムにあります。
https://github.com/r4m0n/ZenStates-Linux || zenstates-gitAUR
  • ryzen_smu — Ryzen SMU は、特定の AMD Ryzen プロセッサの SMU (System Management Unit) へのアクセスを公開する Linux カーネルドライバーです。例として、5800x3D のアンダーボルテージに使用できます(このスクリプト を参考にしてください)。
https://gitlab.com/leogx9r/ryzen_smu || ryzen_smu-dkms-gitAUR

カーネルのコンパイル

Ryzen サポートの有効化については Gentoo:Ryzen#Kernel を参照してください。公式にサポートされているカーネルはデフォルトで必要な設定を持っています。

トラブルシューティング

ランダムリブート

ランダムな再起動が発生している場合は、Gentoo:Ryzen#Random_reboots_with_mce_events を参照してください。

Ryzen 5000 シリーズ、特に 5950X と 5900X の高エンドモデルでは、このカーネルバグ に示されているように、おそらく 5.11+ カーネルに関連して、Linux でのわずかな不安定さが存在しているようです。インターネット上の報告を調査して読んでみると、デフォルトの状態では、Windows は Linux カーネルと比較して、CPU をより高い電圧で、より低いピーク周波数で動作させるようです。これは、シリコンロッタリーのドローに応じて、ランダムなアプリケーションのクラッシュや、再起動につながるハードウェアエラーの原因となる可能性があります。次のような dmesg ログでこれらを認識することができます:

kernel: mce: [Hardware Error]: Machine check events logged
kernel: mce: [Hardware Error]: CPU 22: Machine Check: 0 Bank 1: bc800800060c0859
kernel: mce: [Hardware Error]: TSC 0 ADDR 7ea8f5b00 MISC d012000000000000 IPID 100b000000000 
kernel: mce: [Hardware Error]: PROCESSOR 2:a20f10 TIME 1636645367 SOCKET 0 APIC d microcode a201016

CPU の ID とプロセッサ番号は異なる場合があります。この問題を解決するためには、CPU がピーク周波数で動作するときに安定するように、CPU により高い電圧を供給する必要があります。これを実現する最も簡単な方法は、マザーボードの BIOS 経由でアクセス可能な AMD カーブオプティマイザを使用することです。これにアクセスし、4ポイントの正のオフセットを設定すると、CPU が高負荷で受け取る電圧が増加します。これにより、高い熱放散要件のためにオーバークロックの可能性が制限されるかもしれませんが、安定して動作します。詳細については、このフォーラムの投稿 を確認してください。私が 5950X にこれを行ったとき、私のプロセッサは安定し、周波数と電圧の範囲は Windows で観察されるものにより近くなりました。

スクリーンティアリング(APU)

Xorg を使用しており、スクリーンティアリングが発生している場合は、AMDGPU#Tear free rendering を参照してください。

ソフトロックフリーズ

このバグはよく知られており、bugzillalaunchpad で議論されています。すべてのケースでの解決策は同じではありませんが、こちらは一部のユーザーにとって有効でした。このコマンドecho rcu_nocbs=0-$(($(nproc)-1))の出力をカーネルパラメータとして追加します。このコマンドnprocはCPUのスレッドを表示するだけです。このオプションを適用するには、CONFIG_RCU_NOCB_CPU オプションを持つコンパイル済みのカーネル(例:linux)が必要です。

フリーズの別の原因は、c-statesによって示される省電力管理です。最大の省電力状態であるc6が問題を引き起こすことがあります。カーネルパラメータprocessor.max_cstate=5の追加はいくつかのケースで役立ちましたが、他のユーザーはこのオプションが適用されないと報告しています。それに対する解決策として、disable-c6-systemdAURパッケージが役立ちました。使用する前に、modprobe msrを実行してカーネルモジュールを有効にする必要があります。

HP Envy x360 15-bq100naのようなRyzen CPUを搭載したラップトップは、システムがフリーズするCPUソフトロックを経験することがあります。これはカーネルパラメータidle=nomwaitを追加することで回避できます。

一部のケースでは、カーネルパラメータpci=nomsiが問題を修正します。

他の場合、問題は単に不良なハードウェアであり、新しいものとしてCPUを保証することで問題が解決するかもしれません。

シャットダウン、再起動、サスペンド時のフリーズ

ノート: この問題は UEFI を更新することで新しい AGESA ファームウェアで修正されるかもしれません。

これは Linux でよくサポートされていない(または全くサポートされていない)C6 c-stateに関連しているようです。

この問題を修正するには、UEFI セットアップに移動し、「Power idle control」のようなオプションを探します。その値を「Typical current idle」に変更します。これらの名称はマザーボードの製造元によって異なる場合がありますので、あなたの場合には少し異なるかもしれません。

他の解決策としては、UEFI セットアップで c-states を無効にするか、processor.max_cstate=1をカーネルコマンドライン引数に追加することが考えられます。

参照