며칠 전에 엔비디아가 발표한 커널 메일링 리스트를 통해 vGPU 기술을 구현하는 패치입니다. 이 패치를 통해 NVIDIA 가상 GPU를 사용할 수 있습니다. 가상화 시스템에서는 그래픽 집약적인 가상 워크스테이션부터 데이터 과학 및 인공 지능 애플리케이션에 이르기까지 다양한 워크로드에 강력한 GPU 성능을 제공합니다.
vGPU NVIDIA 물리적 GPU 리소스를 하드웨어로 나누고, 각 vGPU에 자체 PCI Express 가상 기능(VF)을 할당합니다. 이는 다양한 작업을 수행하는 게스트 시스템을 실행하여 사용 가능한 리소스를 최대한 활용할 수 있음을 의미합니다.
언급된다 각 NVIDIA vGPU는 기존 GPU와 유사하게 작동합니다. 고정된 양의 프레임 버퍼와 "헤드"라고도 알려진 하나 이상의 가상 화면 출력이 있기 때문입니다. vGPU 프레임 버퍼는 생성 시 물리적 GPU 프레임 버퍼에서 할당되며 vGPU는 해당 버퍼가 파괴될 때까지 해당 버퍼의 독점적인 사용을 유지합니다.
이를 통해 IT는 가상화의 관리 및 보안 이점은 물론 최신 워크로드에 필요한 NVIDIA GPU 성능을 활용할 수 있습니다. 엔터프라이즈 또는 클라우드 데이터 센터 서버의 물리적 GPU에 설치되는 NVIDIA vGPU 소프트웨어는 여러 가상 머신에서 공유할 수 있는 가상 GPU를 생성합니다.
컨트롤러 그래픽 카드와 호환됩니다 NVIDIA 기반 Ada Lovelace 마이크로아키텍처, 생성할 수 있는 vGPU 수는 비디오 카드 모델에 따라 다릅니다.
호스트 시스템에서는 수정된 Nouveau 드라이버는 vGPU를 생성하고 게스트 시스템과 페어링하는 역할을 담당합니다. 한편, 게스트 시스템에서는 표준 독점 NVIDIA 드라이버가 사용됩니다. 이를 통해 vGPU의 기능이 일반 GPU의 기능과 유사해 메모리의 일부가 물리적 GPU 프레임 버퍼에서 vGPU로 할당되어 vGPU에서만 사용되도록 할 수 있습니다.
vGPU에는 여러 유형이 있습니다., 각각은 서로 다른 비디오 메모리 용량, 가상 화면 수 및 최대 해상도를 사용하여 서로 다른 목적으로 설계되었습니다.
구현 기본 nvkm 드라이버를 다루고, 이는 개방형 Nouveau 드라이버와 VFIO(Virtual Function I/O) 모듈로 작동하는 vgpu_mgr이라는 vGPU 관리자 위에 구축됩니다. 이 관리자는 vGPU 생성 및 삭제, 유형 선택, 사용자 공간 제어를 위한 API 제공과 같은 주요 기능을 처리합니다.
VFIO와 함께 NVIDIA vGPU VFIO 모듈은 VF에 위치하며 다음을 제공합니다. 확장된 기능 및 관리(예: vGPU 유형 선택, 지원) 드라이버의 실시간 마이그레이션 및 핫 업데이트.
다른 VFIO 호환 장치와 마찬가지로 VFIO는 다음을 제공합니다.
장치 수명주기 관리를 위한 표준 사용자 공간 API 고급 기능을 지원합니다.NVIDIA vGPU 관리자는 다음에 필요한 지원을 제공합니다. vGPU 생성/파괴를 위한 NVIDIA vGPU VFIO 변형 드라이버, 사용 가능한 vGPU 유형 확인, 선택 vGPU 유형 등
관리자 vGPU는 기본 GPU 드라이버와 상호 작용합니다., 하드웨어에 직접 액세스합니다. 추가적으로 GSP 펌웨어, NVIDIA vGPU Manager를 로드하세요. 다음 기능을 수행합니다:
- 공유/분할된 하드웨어 리소스를 관리합니다. 예를 들어, FB 메모리를 예약하고,
vGPU 관리자가 vGPU를 생성하기 위한 채널입니다. - 예외 처리. 예를 들어 GSP 이벤트를 vGPU 관리자에 전달합니다.
- 호스트 이벤트를 보냅니다. 예를 들어 일시 중지/재개입니다.
- 하드웨어 구성 열거.
마지막으로 만약 당신이 그것에 대해 더 알고 싶은 관심, 당신은에서 세부 사항을 확인할 수 있습니다 다음 링크, 뿐만 아니라 실제 코드도 볼 수 있습니다 다음 영상에서. 코드 테스트는 게스트 운영 체제인 Ubuntu 24.04에서 수행되었습니다.