Deaktivieren Sie die dedizierte Grafikkarte, um Strom zu sparen

Dieser Artikel ist für Freunde gedacht, deren Desktop-PC selten ausgeschaltet wird und die häufig von zu Hause aus remote an ihrem Desktop-PC arbeiten.

Mein Hauptarbeits- und Spielcomputer ist derselbe Rechner. Der Bildschirm ist 4K 144 Hz, normalerweise habe ich die dedizierte Grafikkarte eingeschaltet, damit das Display bei normalen Operationen flüssiger wirkt, der Stromverbrauch ist jedoch auch deutlich höher.

Die folgenden Screenshots enthalten gleichzeitig einen J4125 Mini-PC, dessen normaler Stromverbrauch bei etwa 18 W liegt. Daher können die Schlussfolgerungen ungenau sein.

Wenn kein Spiel läuft, kann die Spitzenleistung beim schnellen Verschieben der Maus auf dem Desktop bis zu 192 W ansteigen.

Nach dem Abschalten der dedizierten Grafikkarte sinkt die Bildwiederholrate auf 60 Hz und die Spitzenleistung sinkt auf etwa 120 W.

Wenn man von außerhalb über ein Tunnel nach Hause arbeitet, verwendet man normalerweise einen Einstiegs-PC von Tencent mit geringer Bandbreite. Die Fernbildwiederholrate beträgt nur 30 Hz. In diesem Fall ist die Verwendung einer dedizierten Grafikkarte sinnlos, und man kann in Betracht ziehen, auf die integrierte Grafikkarte umzuschalten.

Die meiste Zeit verwende ich nicht direkt den Remote-Desktop, sondern die Remote-Entwicklung von VS Code. Der Vorteil ist, dass sie unauffällig ist, wenig Bandbreite verbraucht und fast das Gefühl einer lokalen Entwicklung vermittelt.

Beim normalen Bearbeiten von Code beträgt der Stromverbrauch etwa 72 W, verglichen mit den 120 W vor dem Abschalten der dedizierten Grafikkarte, was eine gewisse Einsparung bedeutet.

Wenn man mit remote ssh remote entwickelt, kann man ein Skript verwenden, um die dedizierte Grafikkarte auszuschalten.

Das Skript wird als switch_dedicate_graphic_cards.ps1 gespeichert. Die Verwendung erfolgt mit switch_dedicate_graphic_cards.ps1 off.

# Verwendung: switch_dedicate_graphic_cards.ps1 on|off

# Parameter abrufen
$switch = $args[0]

# Beenden, wenn kein Parameter übergeben wurde
if ($switch -eq $null) {
    Write-Host "Verwendung: switch_dedicate_graphic_cards.ps1 on|off" -ForegroundColor Yellow
    exit
}

# Anzeigegeräte abrufen
$displayDevices =  Get-CimInstance -Namespace root\cimv2 -ClassName Win32_VideoController

# Wenn kein Anzeigegerät oder nur ein Anzeigegerät vorhanden ist, beenden
if ($displayDevices.Count -le 1) {
    Write-Host "Kein Anzeigegerät gefunden."
    exit
}

# Dedizierte Grafikkarten abrufen
$dedicatedGraphicCards = $displayDevices | Where-Object { $_.Description -like "*NVIDIA*" }

# Wenn keine dedizierte Grafikkarte vorhanden ist, beenden
if ($dedicatedGraphicCards.Count -eq 0) {
    Write-Host "Keine dedizierte Grafikkarte gefunden."
    exit
}

# Dedizierte Grafikkarten ein- oder ausschalten
if ($switch -eq "on") {
    $dedicatedGraphicCards | ForEach-Object { pnputil /enable-device $_.PNPDeviceID }
    Write-Host "Die dedizierten Grafikkarten sind eingeschaltet."
} elseif ($switch -eq "off") {
    $dedicatedGraphicCards | ForEach-Object { pnputil /disable-device $_.PNPDeviceID }
    Write-Host "Die dedizierten Grafikkarten sind ausgeschaltet."
} else {
    Write-Host "Ungültiger Parameter."
    Write-Host "Verwendung: switch_dedicate_graphic_cards.ps1 on|off" -ForegroundColor Yellow
}