본문 바로가기
NVIDIA

[NVIDIA] GPU Passthrough

by Yoon_estar 2024. 6. 28.
728x90
반응형

GPU Passthrough 설정하기

GPU Passthrough는 가상화 환경에서 물리적 GPU를 가상 머신에 직접 할당하는 기술입니다. 이는 GPU의 모든 성능을 가상 머신에서 활용할 수 있게 하여, 높은 성능이 요구되는 그래픽 작업이나 계산 작업을 가상 환경에서도 가능하게 합니다. 이 블로그에서는 Rocky Linux 8에서 NVIDIA GPU Passthrough를 설정하는 방법에 대해 설명하겠습니다.

1. grub 설정

GPU Passthrough 설정의 첫 단계는 Grub 설정을 변경하여 IOMMU를 활성화하는 것입니다.

1.1 grub 파일 수정

GRUB_CMDLINE_LINUX 라인에 intel_iommu=on을 추가합니다:

# vi /etc/default/grub

GRUB_CMDLINE_LINUX="intel_iommu=on" 추가 

...
GRUB_CMDLINE_LINUX="crashkernel=auto resume=UUID=181f08f5-04eb-42ca-b05c-5760f78022df rhgb quiet splash intel_iommu=on module_blacklist=nouveau"
...

1.2 설정 적용

Grub 설정을 저장한 후, 변경사항을 적용합니다.

Legacy

grub2-mkconfig --output=/boot/grub2/grub.cfg

혹은

grub2-mkconfig -o /boot/grub2/grub.cfg

UEFI

grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg

1.3 재부팅

2. 커널 모듈 설정

GPU Passthrough를 설정하려면 커널 모듈을 설정하고, GPU 하드웨어 주소를 확인해야 합니다.

2.1 GPU 하드웨어 주소 확인

먼저, lspci 명령어를 사용하여 GPU의 하드웨어 주소를 확인합니다.

# lspci -nn | grep -i nvidia
04:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK110GL [Quadro K5200] [10de:103c] (rev a1)
04:00.1 Audio device [0403]: NVIDIA Corporation GK110 High Definition Audio Controller [10de:0e1a] (rev a1)

2.2 설정 파일 생성

이제, VFIO (Virtual Function I/O) 드라이버를 사용하여 위에서 확인한 GPU와 오디오 장치를 Passthrough 하도록 설정 파일을 생성합니다.

# vi /etc/modprobe.d/vfio.conf

# create new: for [ids=***], specify [vendor-ID:device-ID]
options vfio-pci ids=10de:103c,10de:0e1a

 

VFIO 모듈을 로드하도록 설정합니다.

# echo 'vfio-pci' > /etc/modules-load.d/vfio-pci.conf

 

변경사항을 적용하기 위해 initramfs를 업데이트하고 시스템을 재부팅합니다.

dracut --force
reboot

 

재부팅 후, VFIO 모듈이 제대로 로드되었는지 확인합니다.

# dmesg | grep -i vfio
[    0.906313] VFIO - User Level meta-driver version: 0.3
[    0.913772] vfio-pci 0000:04:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[    0.926043] vfio_pci: add [10de:103c[ffffffff:ffffffff]] class 0x000000/00000000
[    0.939036] vfio_pci: add [10de:0e1a[ffffffff:ffffffff]] class 0x000000/00000000

 

설정이 완료되면, 호스트 시스템에서 GPU 정보를 조회할 수 없습니다. 이는 GPU가 가상 머신에 할당되었기 때문입니다.

 

GPU Passthrough의 목적

 

  • 성능 향상: 가상 머신에서 물리적인 GPU 성능을 최대한 활용하여 그래픽 작업이나 계산 작업의 성능을 크게 향상시킬 수 있습니다.
  • 가상화 환경: 여러 가상 머신이 각각 물리적인 GPU를 사용할 수 있어, 가상화된 서버 환경에서 높은 성능의 작업을 수행할 수 있습니다.
  • 유연성: 개발 및 테스트 환경에서 GPU 자원을 유연하게 할당하고 관리할 수 있습니다.

결론

이 가이드를 통해 Rocky Linux 8에서 NVIDIA GPU Passthrough를 설정하는 방법을 배웠습니다. GPU Passthrough를 통해 가상 머신에서도 물리적 GPU의 성능을 활용할 수 있어, 고성능이 요구되는 작업을 효율적으로 수행할 수 있습니다. Grub 설정, 커널 모듈 설정, 그리고 VFIO 설정을 차례로 진행하여 성공적으로 GPU Passthrough를 설정해 보세요.

 

반응형