본문 바로가기

잡다

Hyper-V DDA 완벽 가이드: VM에서 GPU 성능 100% 활용하기

 

Hyper-V에서 파티셔닝 없이 VM이 GPU를 단독으로 사용하는 방법이 궁금하신가요? Discrete Device Assignment (DDA) 기능을 활용하면 물리 GPU를 가상 머신에 직접 할당하여, 거의 네이티브에 가까운 놀라운 그래픽 성능을 경험할 수 있습니다. 🚀

가상 머신(VM) 환경에서 고사양 그래픽 작업이나 AI 모델 학습을 하려고 할 때, GPU 성능 저하 때문에 답답했던 경험 있으신가요? 저도 그랬습니다. "VM에서는 어쩔 수 없나?" 하고 포기하려던 찰나, Hyper-V의 Discrete Device Assignment (DDA)라는 보석 같은 기능을 알게 되었죠. DDA는 복잡한 파티셔닝 없이 물리 GPU 하나를 통째로 VM에 연결해주는 강력한 기술입니다. 오늘은 제가 직접 부딪히고 해결하며 터득한 DDA 설정 방법을 A부터 Z까지 모두 알려드릴게요! 😊

 

1. DDA 설정 전 필수 확인 사항 🛠️

DDA 설정을 시작하기 전에, 성공적인 할당을 위해 몇 가지 중요한 준비물이 필요합니다. 하드웨어부터 소프트웨어까지 꼼꼼히 체크해 봅시다.

필수 요구 사항

  • 하드웨어 호환성: CPU와 메인보드가 IOMMU(Intel VT-d 또는 AMD-Vi) 기술을 지원해야 합니다. 이 기능은 BIOS/UEFI 설정에서 반드시 'Enabled' 상태여야 합니다.
  • 소프트웨어 버전: 호스트 OS는 Windows Server 2016 이상 또는 Windows 10/11 Pro (1809 빌드 이상)이 필요합니다. 게스트 OS(VM 내부)도 최신 버전을 권장합니다.
  • 관리자 권한: 모든 설정은 관리자 권한으로 실행된 PowerShell에서 이루어집니다.
  • 정적 메모리 할당: DDA를 사용할 VM은 동적 메모리(Dynamic Memory)를 사용할 수 없으며, 모든 메모리가 정적으로 할당되어야 합니다.
⚠️ 주의하세요!
BIOS/UEFI에서 IOMMU 관련 설정을 제대로 켜지 않으면 이후 모든 과정이 실패합니다. PC 제조사마다 메뉴 이름(VT-d, IOMMU, Directed I/O 등)이 다를 수 있으니, 메인보드 설명서를 꼭 확인하세요.

 

2. DDA 설정 단계별 가이드 🖥️

이제 본격적으로 PowerShell을 사용하여 DDA를 설정해 보겠습니다. 단계별로 차근차근 따라오시면 어렵지 않습니다.

  1. GPU 위치 경로(Location Path) 확인하기

    먼저, VM에 할당할 GPU의 고유한 주소를 알아내야 합니다.

    • Hyper-V 호스트에서 장치 관리자를 열고 '디스플레이 어댑터'를 확장합니다.
    • 할당할 GPU 속성 > '자세히' 탭 > 속성 드롭다운에서 '위치 경로'를 선택합니다.
    • PCIROOT(0)#PCI(0100)#PCI(0000)와 같은 값을 복사해 둡니다.
  2. 호스트에서 GPU 비활성화 및 분리

    이제 PowerShell(관리자)을 열고 아래 명령어를 순서대로 실행하여 호스트에서 GPU를 분리합니다.

    # 장치 관리자 이름과 동일하게 입력
    Disable-PnpDevice -InstanceId (Get-PnpDevice -FriendlyName "NVIDIA GeForce RTX 3080").InstanceId -Confirm:$false

    # 1단계에서 복사한 위치 경로 입력
    Dismount-VMHostAssignableDevice -LocationPath "여기에_위치_경로_붙여넣기" -Force
  3. 가상 머신(VM) 설정 변경

    VM이 GPU를 제대로 인식하고 사용할 수 있도록 몇 가지 VM 설정을 최적화합니다.

    # VM 자동 중지 동작 설정
    Set-VM -Name "VM이름" -AutomaticStopAction TurnOff

    # CPU Write-Combining 활성화
    Set-VM -VMName "VM이름" -GuestControlledCacheTypes $true

    # MMIO 공간 할당 (GPU VRAM에 맞춰 조절)
    Set-VM -VMName "VM이름" -LowMemoryMappedIoSpace 128MB
    Set-VM -VMName "VM이름" -HighMemoryMappedIoSpace 18000MB
  4. VM에 GPU 할당 및 드라이버 설치

    마지막으로, 준비된 GPU를 VM에 최종적으로 연결합니다.

    # 최종 할당 명령어
    Add-VMAssignableDevice -VMName "VM이름" -LocationPath "여기에_위치_경로_붙여넣기"

    이제 VM을 부팅하고, 게스트 OS 안에서 제조사(NVIDIA, AMD 등)의 공식 그래픽 드라이버를 설치하면 모든 과정이 끝납니다! 🎉

 

3. 한눈에 보는 핵심 요약 📝

💡

Hyper-V DDA 설정 핵심 체크리스트

1. 사전 준비: IOMMU 활성화 및 시스템 요구사항 확인
2. GPU 분리: Disable-PnpDevice, Dismount-VMHostAssignableDevice 명령어로 호스트에서 GPU 분리
3. VM 최적화:
Set-VM으로 자동 중지, 캐시 타입, MMIO 공간 설정
4. 최종 할당: Add-VMAssignableDevice로 VM에 GPU 할당 후 게스트 OS에서 드라이버 설치

 

자주 묻는 질문 ❓

Q: DDA 설정 후 호스트 PC에서 할당된 GPU를 사용할 수 있나요?
A: 아니요, DDA는 GPU를 VM에 '독점적으로' 할당하는 방식입니다. 따라서 VM이 실행 중일 때는 호스트 OS에서 해당 GPU를 사용할 수 없으며, 장치 관리자에서도 사라집니다. VM을 종료하고 GPU를 다시 마운트해야 호스트에서 사용할 수 있습니다.
Q: VM에서 GPU 성능이 예상보다 낮게 나옵니다. 왜 그런가요?
A: 몇 가지 원인이 있을 수 있습니다. 첫째, Set-VM 명령어에서 MMIO 공간을 너무 작게 할당한 경우입니다. GPU의 VRAM보다 넉넉하게 설정해 보세요. 둘째, 게스트 OS에 설치된 드라이버가 최신 버전이 아니거나 호환성 문제가 있을 수 있습니다. 마지막으로, CPU나 RAM 등 다른 시스템 자원이 병목 현상을 일으키는 경우도 있습니다.
Q: 모든 GPU에서 DDA를 사용할 수 있나요?
A: 대부분의 최신 서버용 및 데스크톱용 GPU는 DDA를 지원하지만, 일부 구형 모델이나 특정 소비자용 모델에서는 제한이 있을 수 있습니다. 확실한 정보는 GPU 제조사의 사양이나 관련 커뮤니티 문서를 통해 확인하는 것이 가장 좋습니다.

DDA는 설정 과정이 다소 복잡하게 느껴질 수 있지만, 성공적으로 마치고 나면 가상 환경의 한계를 뛰어넘는 강력한 성능을 체감할 수 있습니다. 오늘 공유해 드린 내용이 여러분의 Hyper-V 환경을 한 단계 업그레이드하는 데 도움이 되었으면 좋겠습니다. 😊