기타 Hacker News · 2026-09-24

가상 머신에서 지포스 그래픽카드 성능 98% 뽑아내는 오픈소스 프로젝트 등장

핵심 요약
  • KVM 가상 머신에서 엔비디아 커널 드라이버 ioctl을 직접 전달해 네이티브 대비 98% 이상의 그래픽 성능을 내는 'virtio-nvgpu' 프로젝트가 공개되었습니다.
  • API 변환 오버헤드 없이 순정 드라이버를 구동하며, RTX 3060 한 장으로 4개 게스트 VM이 자원을 균등하게 나눠 쓰며 동시 H.264 인코딩까지 성공했습니다.
  • 헤드리스 스트리밍 환경을 주요 타깃으로 개발 중이며 현재 기본 렌더링 및 인코딩은 검증되었으나 무거운 3D 연산이나 다중 테넌트 격리는 개발 과제로 남아있습니다.
요약 가상 머신(KVM) 환경에서 엔비디아(NVIDIA) GPU 성능을 네이티브(베어메탈) 대비 98% 수준으로 끌어올리는 오픈소스 프로젝트 'virtio-nvgpu'가 공개되어 기술 커뮤니티의 관심을 모으고 있습니다. 기존 가상화 환경에서는 API 레벨에서 그래픽 명령을 번역하느라 상당한 오버헤드가 발생하거나, GPU 패스스루(PCIe Passthrough)를 써서 GPU 하나를 통째로 특정 VM에만 넘겨줘야 하는 한계가 있었습니다. 반면 virtio-nvgpu는 리눅스 게스트와 호스트 간에 엔비디아 커널 드라이버 ioctl 및 mmap을 드라이버 ABI 레벨에서 직접 포워딩하는 방식을 택했습니다. 이를 통해 게스트 VM은 별도의 수정 없는 순정 엔비디아 사용자 모드 드라이버(User-Mode Driver)를 그대로 구동하며, 동일한 벌칸(Vulkan) 및 NVENC 인코더 라이브러리를 사용해 하드웨어에 직접 접근합니다. RTX 3060(드라이버 595.99.02) 환경에서 진행된 벤치마크에 따르면, 일반적인 게임 렌더링 부하 기준(프레임당 약 2ms 이상)에서 게스트의 프레임 타임은 베어메탈 대비 약 2% 이내의 오차를 기록했습니다. CPU 사용량 역시 호스트 베어메탈이 0.40초를 소모할 때 게스트는 0.37초 수준으로 거의 동일했습니다. 렌더링 루프에서는 매핑된 메모리를 통해 직접 작업이 제출되므로 오버헤드가 사실상 없으며, 약 81만 프레임을 처리하는 동안 백엔드 메시지 왕복은 13,792회(약 59프레임당 1회)에 불과했고 그마저도 대부분 디바이스 초기화 작업이었습니다. 특히 GPU 하나를 여러 VM이 나누어 쓰는 다중 게스트 테스트에서도 안정적인 성능을 보였습니다. 단일 RTX 3060 그래픽카드에서 4개의 게스트 VM이 동일한 부하를 실행했을 때, 각각 약 25.6~26.5 fps(합산 103.7 fps, 단일 게스트 실행 시 102.9 fps)로 매우 균등하게 자원을 분할했습니다. 또한 4개 VM 모두 NVENC 세션 제한에 걸리지 않고 60Hz로 H.264 인코딩을 동시에 완벽히 수행했습니다. 프로젝트는 헤드리스 스트리밍(모니터 없는 환경에서 렌더링 후 압축 비디오 송출)을 주요 타깃으로 삼고 있으며, Rust 기반의 VMM 비종속적 virtio 디바이스 crate와 GPL-2.0 리눅스 게스트 드라이버 모듈로 구조화되어 있습니다. 다만 현재는 vkcube 720p 수준의 테스트와 4개 게스트 분할까지만 검증되었으며, 복잡한 게임 구동이나 본격적인 CUDA 연산, 다중 사용자 격리 보안(Jailer) 등은 추가 개발 과제로 남아 있습니다.
Sponsored · 광고