Hyper-V 호스트에서 가상 머신에 물리적 비디오 카드를 연결하는 방법 가이드

Hyper-V 호스트에서 가상 머신에 물리적 비디오 카드를 연결하는 방법 가이드

OpenGL, Direct3D, CUDA와 같은 작업을 위해 가상 머신에 비디오 카드(GPU)가 필요할 수 있습니다. 그런 경우 일반적으로 에뮬레이트된 비디오 카드를 사용하는데, 이는 전용 GP만큼 성능이 좋지 않습니다. 따라서 이 게시물에서는 호스트의 VM에 물리적 비디오 카드를 연결하는 방법을 알아보겠습니다.

Hyper-V를 통해 GPU를 어떻게 전달합니까?

Hyper-V 호스트의 VM에 물리적 비디오 카드를 연결하려면 GPU 패스스루를 사용합니다.

GPU 패스스루는 가상 머신에 물리적 GPU를 할당할 수 있는 고급 기능입니다. 이 기능은 고성능 그래픽이 필요한 게임이나 3D 렌더링과 같은 애플리케이션에 특히 유용합니다. 이 설정에서 가상 머신은 에뮬레이션 오버헤드 없이 물리적 그래픽 어댑터에 직접 액세스할 수 있어 그래픽 성능을 크게 향상시킬 수 있습니다. 기본적으로 Hyper-V의 가상 머신은 에뮬레이션된 그래픽 카드를 사용하는데, 이는 까다로운 그래픽 작업에는 충분하지 않을 수 있습니다. GPU 패스스루를 사용하면 가상 머신이 물리적 GPU의 모든 성능을 활용하여 보다 집중적인 그래픽 워크로드를 효율적으로 처리할 수 있습니다.

GPU 패스스루에 대한 시스템 요구 사항은 무엇입니까?

GPU 패스스루를 설정하기 전에 다음 필수 조건을 충족하는지 확인하세요.

하드웨어 요구 사항

  • 프로세서가 Intel-VT 또는 AMD-V 가상화를 지원하는지 확인해야 합니다 .
  • PCI 패스스루의 경우 프로세서가 IOMMU(입출력 메모리 관리 장치)를 지원해야 합니다.
  • GPU는 NVIDIA GRID 또는 AMD MxGPU와 같은 GPU 가상화 기술을 지원해야 합니다. 이러한 기술은 개별 공급업체에 따라 다릅니다. 서버급 하드웨어를 활용하면 성공률을 개선할 수 있습니다. PCI 인터럽트(INTx)에 의존하는 이전 장치는 호환되지 않습니다.
  • 마지막으로, 시스템은 단일 루트 입출력 가상화를 지원해야 합니다.

소프트웨어 요구 사항:

  • 운영체제: Windows Server 2016(또는 이후 버전) 또는 Windows 11/10.
  • 기능: Hyper-V를 활성화해야 합니다.
  • VM 세대: 가상 머신은 2세대여야 합니다.
  • 드라이버: 모든 GPU 드라이버는 최신 버전으로 업데이트해야 합니다.

GPU 패스스루의 제한 사항:

GPU Passthrough를 사용하려면 다음 구성을 피해야 합니다.

  • 가상 머신은 동적 메모리를 사용하면 안 됩니다.
  • GPU 패스스루는 Windows Server 2019 Datacenter와 같은 최상위 Windows 에디션에서만 사용할 수 있습니다.
  • Hyper-V 호스트에 Linux용 Windows 하위 시스템이 배포된 경우 코드 43의 VM 오류가 발생할 수 있습니다.
  • 고가용성 및 라이브 VM 마이그레이션과 같은 클러스터링 기능은 지원되지 않습니다.
  • VM 체크포인트를 사용한 저장 및 복원은 지원되지 않습니다.

앞서 언급한 요구 사항을 충족하면 GPU 패스스루를 활용할 수 있습니다.

Hyper-V 호스트의 VM에 물리적 비디오 카드 연결

GPU 패스스루를 사용하여 Hyper-V 호스트의 VM에 물리적 비디오 카드를 연결하려면 아래 단계를 따르세요.

  1. Intel-VT 또는 AMD-V 가상화 활성화
  2. GPU 패스스루를 위해 컴퓨터 구성
  3. Windows 11/10용 GPU 패스스루 설정
  4. Windows Server에 대한 GPU 패스스루 설정

이에 대해 자세히 살펴보겠습니다.

1] Intel-VT 또는 AMD-V 가상화 활성화

하드웨어 가상화 활성화 또는 비활성화

전제 조건에서 언급했듯이, 첫 번째 단계는 하드웨어 가상화를 활성화하는 것입니다. 따라서 Intel CPU를 사용하는 경우 Intel-VT를 활성화해야 하고 AMD 사용자는 AMD-V 가상화를 활성화해야 합니다.

이를 위해 BIOS로 부팅하고 구성 > 가상화 기술로 이동한 다음 사용으로 설정합니다. 이러한 단계는 HP에만 해당되므로 링크된 게시물로 이동하여 컴퓨터에서 해당 기능을 활성화하는 방법을 확인할 수 있습니다.

2] GPU 패스스루를 위해 컴퓨터를 구성하세요

다음으로, GPU 패스스루를 위해 호스트 컴퓨터를 구성해야 합니다. 앞서 언급했듯이 하드웨어 가상화를 활성화하는 것으로 시작했습니다. 다음으로, IOMMU가 활성화되어 있고 자동 체크포인트가 비활성화되어 있는지 확인해야 합니다.

따라서 하드웨어 가상화 활성화에 대한 링크된 가이드를 확인하여 IOMMU를 활성화 할 수 있지만 일반적으로 기본적으로 활성화되어 있습니다. PowerShell을 열고 다음 쿼리를 실행하여 활성화되었는지 확인할 수 있습니다.

(Get-VMHost).IovSupport; (Get-VMHost).IovSupportReasons

True라고 되어 있으면 해당 기능이 활성화되어 다음 구성으로 넘어갈 수 있지만, False라고 되어 있으면 해당 기능을 활성화해야 합니다.

이제 VM의 모든 체크포인트를 삭제하고 다음 명령을 사용하여 비활성화하세요.

Get-VM Set-VM -Name NameOfVM -AutomaticStopAction TurnOff

참고: NameOfVM 변수를 이전 명령을 실행하여 가져올 수 있는 가상 머신의 실제 이름으로 바꾸세요.

3] Windows 11/10을 위한 GPU 패스스루 설정

Hyper-V 호스트의 VM에 물리적 비디오 카드 연결

먼저, Windows 클라이언트 운영체제에서 GPU 패스스루를 활성화하는 방법을 알아보겠습니다.

비디오 카드가 GPU 패스스루를 지원하는지 확인하려면 다음 명령을 실행해야 합니다.

윈도우 11

Get-VMHostPartitionableGpu

윈도우 10

Get-VMPartitionableGpu

다음으로, 호스트 클라이언트에서 VM으로 그래픽 드라이버를 복사해야 합니다. 프로세스를 간소화하기 위해 github.com 에서 ZIP 파일을 다운로드하여 어딘가에 압축을 푸는 것을 권장합니다.

이 스크립트를 실행하려면 먼저 다음 두 명령을 사용하여 스크립트 실행을 허용해야 합니다.

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force

실행 정책 설정 – 실행 정책 RemoteSigned – 범위 CurrentUser

명령을 실행한 후 다음 명령을 사용하여 스크립트를 실행해야 합니다. GPU Passthrough에 VM을 추가하기 전 및/또는 후에 실행할 수 있습니다.

.\Update-VMGpuPartitionDriver.ps1 -VMName <VMNAME> -GPUName "AUTO"

이제 다음 명령을 실행하여 VM을 GPU 패스스루에 추가합니다.

Set-VM -VMName VMName -GuestControlledCacheTypes $true -LowMemoryMappedIoSpace 1Gb -HighMemoryMappedIoSpace 32Gb Add-VMGpuPartitionAdapter -VMName <VMNAME>

GPU 파티션을 제거하려면 –를 실행하세요 Remove-VMGpuPartitionAdapter -VMName <VMNAME>.

4] Windows Server에 대한 GPU 패스스루 설정

Windows Server를 사용하는 경우 PowerShell의 관리자 모드에서 다음 명령을 실행하여 32비트(32비트 운영체제의 경우 3GB) MIMO 공간에 대한 캐시와 제한을 설정해야 합니다.

Set-VM -Name VMNAME -GuestControlledCacheTypes $True -LowMemoryMappedIoSpace 3Gb -HighMemoryMappedIoSpace 33280Mb

이러한 제한은 VM이 장치에 액세스할 수 있는 메모리를 정의합니다. learn.microsoft.com 의 Machine Profile 스크립트를 사용하여 정확한 MIMO 제한을 설정합니다. VM이 리소스 부족을 보이면 값을 조정합니다. 32비트보다 큰 MIMO 공간에는 33280MB가 필요합니다.

다음으로, PCI Express 장치의 위치를 ​​확인해야 합니다. 그러려면 다음 쿼리를 실행합니다.

Get-PnpDevice | Where-Object {$_.Present -eq $true} | Where-Object {$_.Class -eq "Display"}|select Name,InstanceId

그리고

Get-PnpDevice -Class Display | ForEach-Object { Write-Output "$($_.FriendlyName) has a device id of $($_.DeviceId) and is located at $($_ | Get-PnpDeviceProperty DEVPKEY_Device_LocationPaths | Select-Object -ExpandProperty Data | Where-Object { $_ -like "PCIROOT*"})"; }

GPU의 위치를 ​​확인해야 합니다. 해당 위치는 PCIROOT(0)#PCI(0200) 과 비슷해야 합니다 .

마지막으로 아래 단계를 따르세요.

  • 장치 관리자를 열고 디스플레이 어댑터를 확장한 다음 디스플레이 드라이버를 마우스 오른쪽 버튼으로 클릭하고 장치 사용 안 함을 클릭합니다.
  • PCI 주소를 변경한 후 GPU 드라이버를 분리하려면 다음 명령을 실행하세요.

Dismount-VmHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0200)"-Force

  • PCI 주소와 VM 이름을 변경한 후 다음 명령을 실행하여 VM에 GPU 장치를 할당합니다.

Add-VMAssignableDevice -VMName VMNAME -LocationPath "PCIROOT(0)#PCI(0200)"

  • VM을 켜고 장치 관리자에서 실제 비디오 카드를 확인합니다.
  • NVIDIA 또는 AMD 웹사이트에서 비디오 카드 드라이버를 설치하세요.

호스트 머신으로 다시 전환하려면 VM을 종료하고 호스트 장치에서 다음 쿼리를 실행하세요.

Remove-VMAssignableDevice -VMName VMNAME -LocationPath $locationPath

그런 다음 다음 명령을 실행하여 비디오 카드를 Hyper-V 호스트에 다시 연결합니다.

Mount-VMHostAssignableDevice -LocationPath $locationPath

다 됐어요!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다