省電力のために独立GPUをオフにする
Categories:
この記事は、自宅のデスクトップPCをリモートでよく使用する方に向けて共有します。
私のメイン作業用とゲーム用は同じPCで、ディスプレイは4K 144Hzです。普段は独立GPUをオンにしていて、通常操作でも表示がよりスムーズになりますが、消費電力も明らかに大きくなります。
以下のスクリーンショットの消費電力にはJ4125ミニPCも含まれており、通常の消費電力は18W前後です。そのため、結論が正確でない可能性があります。
ゲームを起動しない場合、デスクトップ上でマウスを素早く動かしたときのピーク消費電力は192Wに達します。

独立GPUをオフにすると、リフレッシュレートが60Hzに下がり、ピーク消費電力は120W前後に低下します。

外出先から自宅のPCにリモート接続する際は、TencentのエントリーレベルのPCを使用しています。帯域は小さく、遠隔側のリフレッシュレートは30Hzのみです。この場合、独立GPUを使用しても意味がありませんので、統合GPUへの切り替えを検討できます。
ほとんどの場合、私は直接リモートデスクトップを使用せず、代わりにVSCodeのリモート開発を使用します。利点は目立たず、帯域使用量が小さく、ほぼローカル開発と同じ体験ができることです。

通常のコード編集時は約72Wで、独立GPUをオフにする前の120Wと比べると、ある程度の省電力効果があります。

remote sshを使用してリモート開発を行う際は、スクリプトを使用して独立GPUをオフにできます。
スクリプトをswitch_dedicate_graphic_cards.ps1として保存し、使用方法はswitch_dedicate_graphic_cards.ps1 offです。
# 使用方法: switch_dedicate_graphic_cards.ps1 on|off
# パラメータを取得
$switch = $args[0]
# パラメータが渡されていない場合は終了
if ($switch -eq $null) {
Write-Host "使用方法: switch_dedicate_graphic_cards.ps1 on|off" -ForegroundColor Yellow
exit
}
# 表示デバイスを取得
$displayDevices = Get-CimInstance -Namespace root\cimv2 -ClassName Win32_VideoController
# 表示デバイスがない、または1つしかない場合は終了
if ($displayDevices.Count -le 1) {
Write-Host "表示デバイスが見つかりません。"
exit
}
# 独立GPUを取得
$dedicatedGraphicCards = $displayDevices | Where-Object { $_.Description -like "*NVIDIA*" }
# 独立GPUがない場合は終了
if ($dedicatedGraphicCards.Count -eq 0) {
Write-Host "独立GPUが見つかりません。"
exit
}
# 独立GPUをオンまたはオフにする
if ($switch -eq "on") {
$dedicatedGraphicCards | ForEach-Object { pnputil /enable-device $_.PNPDeviceID }
Write-Host "独立GPUがオンになりました。"
} elseif ($switch -eq "off") {
$dedicatedGraphicCards | ForEach-Object { pnputil /disable-device $_.PNPDeviceID }
Write-Host "独立GPUがオフになりました。"
} else {
Write-Host "無効なパラメータです。"
Write-Host "使用方法: switch_dedicate_graphic_cards.ps1 on|off" -ForegroundColor Yellow
}