전력 절약을 위해 독립형 그래픽 카드 끄기
Categories:
이 글은 컴퓨터를 자주 끄지 않고, 자주 원격으로 집에 있는 데스크탑에 접속하여 일하는 분들을 위한 글입니다.
저의 주된 작업 및 게임용 컴퓨터는 같은 기기이며, 디스플레이는 4K 144Hz입니다. 평소에는 독립형 그래픽 카드를 켜두어 일반적인 작업 시 화면이 더 부드럽게 표시되게 하지만, 전력 소비도 눈에 띄게 증가합니다.
아래 스크린샷의 전력 소비는 J4125 소형 컴퓨터도 함께 포함되어 있으며, 평소 전력 소비는 약 18W 수준입니다. 따라서 결론에 약간의 오차가 있을 수 있습니다.
게임을 하지 않을 때, 바탕 화면에서 마우스를 빠르게 움직이면 최고 전력 소비가 192W까지 올라갑니다.

독립형 그래픽 카드를 끄면 새로 고침 주파수가 60Hz로 떨어지고, 최고 전력 소비는 120W 정도로 감소합니다.

외부에서 터널을 통해 집으로 돌아와 일할 때는 텐센트의 입문형 컴퓨터를 사용하는데, 대역폭이 작아 원격 새로 고침 주파수는 30Hz에 불과합니다. 이런 경우 독립형 그래픽 카드를 사용하는 것은 의미가 없으니, 통합 그래픽으로 전환하는 것을 고려할 수 있습니다.
대부분의 경우 직접 원격 데스크톱을 사용하지 않고, VS Code의 원격 개발을 이용합니다. 장점은 은폐성이 뛰어나고 대역폭 점유가 적으며 거의 로컬 개발과 같은 경험을 제공한다는 것입니다.

일반적인 코드 편집 시 약 72W의 전력을 소비하며, 독립형 그래픽 카드를 끄기 전의 120W와 비교하면 어느 정도 절전 효과가 있습니다.

remote ssh를 사용해 원격 개발할 때는 스크립트로 독립형 그래픽 카드를 끌 수 있습니다.
스크립트를 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
# 디스플레이 장치가 없거나 하나만 있을 경우 종료
if ($displayDevices.Count -le 1) {
Write-Host "디스플레이 장치가 없습니다."
exit
}
# 독립형 그래픽 카드 가져오기
$dedicatedGraphicCards = $displayDevices | Where-Object { $_.Description -like "*NVIDIA*" }
# 독립형 그래픽 카드가 없을 경우 종료
if ($dedicatedGraphicCards.Count -eq 0) {
Write-Host "독립형 그래픽 카드가 없습니다."
exit
}
# 독립형 그래픽 카드를 켜거나 끄기
if ($switch -eq "on") {
$dedicatedGraphicCards | ForEach-Object { pnputil /enable-device $_.PNPDeviceID }
Write-Host "독립형 그래픽 카드가 켜졌습니다."
} elseif ($switch -eq "off") {
$dedicatedGraphicCards | ForEach-Object { pnputil /disable-device $_.PNPDeviceID }
Write-Host "독립형 그래픽 카드가 꺼졌습니다."
} else {
Write-Host "잘못된 매개변수입니다."
Write-Host "사용법: switch_dedicate_graphic_cards.ps1 on|off" -ForegroundColor Yellow
}