前回に引き続き、Ryzen 5 5600G の iGPU はすごく楽チンなんだなぁ、という思いが強くなってきました。
さっそく測定
![]() |
Basemark Web iGPU |
![]() |
Basemark Web Radeon 6600 |
![]() |
MotionMark iGPU |
![]() |
MotionMark Radeon 6600 |
ベンチマークの数値はけっこう増加しているのですが、デスクトップの操作感は iGPU と Radeon 6600 であまり違いがわかりませんでした。
![]() |
GPU の稼働状況 iGPU |
![]() |
GPU の稼働状況 Radeon 6600 |
GPU の稼働状況を確認してみると、iGPU の時は MCLK が 1800MHz、SCLK が 2100MHz という値であったのですが、Radeon 6600 に差し替えると 96MHz でほぼ固定、SCLK に至ってはゼロからちょびちょび変動しています。稀に 100MHz を超えることもある程度です。
GPU 温度も iGPU とそれほど変わらず、使用感も iGPU と同等な感じです。少ないエネルギーで同等の仕事をしているとも言えますが、残念ながらワタシの目的は「艦これ」のカクカクをなくすことなので、これではダメなのです。
調べてみた
Vega 20 以降の世代の Radeon では電源管理の方式が変わっているらしく、自動調整が非常に良くなっているようです。
kernel 起動パラメーターに amdgpu.ppfeaturemask を指定することで電源管理機能を調整できるようになります。
/sys/class/drm/card0/device 内に pp_od_clk_voltage というファイルが追加され、その中身を確認するとOD_SCLK と OD_MCLK が表示されますが、それぞれで「0:〜」が最小クロック、「1:〜」が最大クロックを示しています。以前の世代の Radeon では動かしたいクロックを指定する方式であったのですが、新しい世代の Radeon では「範囲」しか指定できなくなっているそうです。
power_dpm_force_performance_level のデフォルト値は「auto」なのですが、ここに「profile_min_sclk」と書き込むと OD_SCLK の 0:〜 のクロックに固定されて動くようになります。
echo profilce_min_sclk > power_dpm_force_performance_level
もう一つ、pp_power_profile_mode で動作モードを変える、という方法もあります。こちらはクロックを固定するわけではなく負荷に応じて上下するのですが、いまいち設定内容がわかりません。
$ cat pp_power_profile_mode PROFILE_INDEX(NAME) CLOCK_TYPE(NAME) FPS MinFreqType MinActiveFreqType MinActiveFreq BoosterFreqType BoosterFreq PD_Data_limit_c PD_Data_error_coeff PD_Data_error_rate_coeff 0 BOOTUP_DEFAULT*: 0( GFXCLK) 0 5 1 0 4 800 4587520 -65536 0 1( SOCCLK) 0 5 1 0 1 0 3276800 -6553 -6553 2( MEMLK) 0 5 1 0 4 800 327680 -65536 0 1 3D_FULL_SCREEN : 0( GFXCLK) 0 5 1 0 4 650 4587520 -3276 -65536 1( SOCCLK) 0 5 1 0 1 0 655360 -6553 -6553 2( MEMLK) 0 5 4 850 4 800 327680 -65536 0 2 POWER_SAVING : 0( GFXCLK) 0 5 1 0 3 0 5898240 -65536 0 1( SOCCLK) 0 5 1 0 1 0 3407872 -6553 -6553 2( MEMLK) 0 5 1 0 3 0 1966080 -65536 0 3 VIDEO : 0( GFXCLK) 0 5 1 0 4 500 4587520 -65536 0 1( SOCCLK) 0 5 1 0 1 0 3473408 -6553 -6553 2( MEMLK) 0 5 1 0 4 500 1966080 -65536 0 4 VR : 0( GFXCLK) 0 5 4 1000 1 0 3932160 0 0 1( SOCCLK) 0 5 1 0 1 0 655360 -6553 -6553 2( MEMLK) 0 5 1 0 4 800 327680 -65536 0 5 COMPUTE : 0( GFXCLK) 0 5 4 1000 1 0 3932160 0 0 1( SOCCLK) 0 5 1 0 1 0 655360 -6553 -6553 2( MEMLK) 0 5 4 850 3 0 327680 -65536 -32768 6 CUSTOM : 0( GFXCLK) 0 5 1 0 4 800 4587520 -65536 0 1( SOCCLK) 0 5 1 0 1 0 3276800 -6553 -6553 2( MEMLK) 0 5 1 0 4 800 327680 -65536 0
プロファイルを切り替えるには、以下のような二段階の操作が必要です。
echo manual > power_dpm_force_performance_level echo 4 > pp_power_profile_mode
MinActiveFreqType などの項目の説明が探しても見つからないので、とりあえずいろんなモードを試してみて期待通りの動きになるプロファイルを探すのが良さそうです。
あと、面倒なのがサスペンドから復帰するとリセットされてしまう点です。power_dpm_force_performance_level が auto に戻っているので、まったく最初からの設定し直しが必要です。
最終的には
なんと、Radeon RX 6600 を取り外して iGPU に戻りました・・・。
・高クロック設定にしても「艦これ」のカクカクが完全に解消しなかった
そんなにすごく高クロックに設定したわけではないのですが、カクカク度合いは減ったものの完全に解消しませんでした。
・GPU の温度が上がるのがイヤだった
当然と言えば当然なのですが、GPU を高クロックで回すと発熱も増えるので温度も高くなります。カクカクが解消しないのに温度が上がるのに耐えきれませんでした。
・やはり面倒
サスペンドから復帰した際に GPU ファンの回転数を再調整し、GPU のクロック設定も再調整するというのがかなり面倒に感じられました。GPU ファンの回転数も GPU 温度に連動して増減して欲しいのですが、これが固定になってしまうのです。
iGPU は CPU ファンで冷却しているのでこれが自動でなされていて大変楽チンだったことが改めて気付かされました。
というわけで、今はディスプレイのリフレッシュレートを上げてみる、というのを試してみたくてウズウズしているところです。最近のディスプレイはリフレッシュレートが 75Hz というものが多いようで、100Hz というのも数が多いようでした。
とても試してみたいのです。