GN⁺: NVIDIA, 오픈소스 Linux GPU 커널 모듈로 완전 전환
(developer.nvidia.com)- NVIDIA는 2022년 5월 R515 드라이버로 GPL과 MIT 듀얼 라이센스로 리눅스 GPU 커널 모듈을 오픈 소스로 공개함
- 당시 데이터센터 컴퓨팅 GPU를 대상으로 했고 GeForce, Workstation GPU는 알파 상태였음
- 이후 릴리즈에서 더 강력하고 완전한 기능의 GeForce와 Workstation 리눅스 지원이 제공될 것이며, NVIDIA 오픈 커널 모듈이 궁극적으로 폐쇄형 드라이버를 대체할 것이라고 발표함
- 2년이 지난 지금, 오픈 소스 GPU 커널 모듈로 동등하거나 더 나은 애플리케이션 성능을 달성하고 다음과 같은 상당한 새로운 기능을 추가함:
- 이기종 메모리 관리(HMM) 지원
- 기밀 컴퓨팅
- Grace 플랫폼의 일관된 메모리 아키텍처
- 기타 등등
- 이제 오픈 소스 GPU 커널 모듈로 완전히 전환하는 것이 적절한 시점이며, 다가오는 R560 드라이버 릴리스에서 이러한 변화를 적용할 예정임
지원되는 GPU
- 모든 GPU가 오픈 소스 GPU 커널 모듈과 호환되는 것은 아님
- NVIDIA Grace Hopper나 NVIDIA Blackwell 같은 최신 플랫폼은 반드시 오픈 소스 GPU 커널 모듈을 사용해야 하며 이들 플랫폼에서 독점 드라이버는 지원되지 않음
- Turing, Ampere, Ada Lovelace, Hopper 아키텍처의 신형 GPU는 오픈 소스 GPU 커널 모듈로 전환하는 것이 권장됨
- Maxwell, Pascal, Volta 아키텍처의 구형 GPU는 오픈 소스 GPU 커널 모듈과 호환되지 않으므로 계속 NVIDIA 독점 드라이버 사용
- 동일한 시스템에서 구형과 신형 GPU가 혼재된 배포의 경우 독점 드라이버 계속 사용
- NVIDIA는 어떤 드라이버를 선택해야 할지 안내해 주는 새로운 감지 도우미 스크립트를 제공함. 자세한 내용은 이 포스트 뒷부분의 "설치 도우미 스크립트 사용" 섹션 참조
설치 프로그램 변경 사항
- 일반적으로 모든 설치 방법에 의해 설치되는 드라이버의 기본 버전이 독점 드라이버에서 오픈 소스 드라이버로 전환되고 있음. 특별한 주의가 필요한 몇 가지 특정 시나리오가 있음:
- CUDA 메타패키지가 포함된 패키지 매니저
- 실행 파일
- 설치 도우미 스크립트
- 패키지 매니저 세부 정보
- Windows 서브시스템 for Linux
- CUDA 툴킷
CUDA 메타패키지가 포함된 패키지 매니저 사용
- 패키지 매니저(run 파일이 아님)를 사용하여 CUDA 툴킷을 설치할 때 설치 메타패키지가 존재하며 일반적으로 사용됨. 최상위
cuda
패키지를 설치하면 CUDA 툴킷과 연결된 드라이버 릴리스가 조합되어 설치됨.
실행 파일 사용
- CUDA 또는 NVIDIA 드라이버를
.run
파일을 사용하여 설치하는 경우 설치 프로그램이 하드웨어를 쿼리하고 시스템에 가장 적합한 드라이버를 자동으로 설치함. UI 토글을 사용하여 독점 드라이버와 오픈 소스 드라이버 중에서 선택할 수도 있음.
설치 도우미 스크립트 사용
- 앞서 언급한 대로 시스템의 GPU에 어떤 드라이버를 선택해야 할지 확실하지 않은 경우 NVIDIA가 선택 과정을 안내하는 도우미 스크립트를 만듦.
- 사용하려면, 먼저
nvidia-driver-assistant
패키지를 패키지 매니저로 설치한 다음 스크립트를 실행하면 됨
패키지 매니저 세부 사항
- 일관된 경험을 위해 NVIDIA는 CUDA 툴킷과 드라이버를 설치할 때 패키지 매니저를 사용할 것을 권장함. 그러나 다양한 배포판에서 사용되는 특정 패키지 관리 시스템이나 패키지 구조는 특정 배포판에 따라 다를 수 있음.
- 이 섹션에서는 다양한 플랫폼에 필요한 구체적인 세부 사항, 주의 사항 또는 마이그레이션 단계를 설명함.
Windows 서브시스템 for Linux
- Windows 서브시스템 for Linux(WSL)는 호스트 Windows 운영 체제의 NVIDIA 커널 드라이버를 사용함. 이 플랫폼에 특정 드라이버를 설치해서는 안 됨. WSL을 사용하는 경우 변경이나 조치가 필요하지 않음.
CUDA 툴킷
- CUDA 툴킷의 설치는 패키지 매니저를 통해 변경되지 않음. 다음 명령을 실행하면 됨:
$ sudo apt-get/dnf/zypper install cuda-toolkit
더 많은 정보
- NVIDIA 드라이버 또는 CUDA 툴킷 설치 방법에 대한 자세한 내용은 CUDA 설치 가이드의 "드라이버 설치" 섹션을 참조
GN⁺의 의견
-
NVIDIA가 GPU 커널 모듈을 오픈 소스로 제공하는 것은 GPU 컴퓨팅 생태계에 매우 긍정적인 변화임. 이를 통해 사용자와 개발자는 NVIDIA GPU 드라이버와 관련된 문제를 보다 쉽게 디버깅하고 해결할 수 있게 됨.
-
오픈 소스 전환으로 HPC, AI, 기계 학습 등의 분야에서 NVIDIA GPU를 활용하는 사용자들에게 더 많은 유연성과 투명성이 제공될 것임. 특히 기업 환경에서 NVIDIA GPU 솔루션 도입 시 보안과 안정성에 대한 우려를 해소하는 데 도움이 될 것임.
-
다만 오픈 소스 전환 과정에서 기존 독점 드라이버 기반 애플리케이션과의 호환성 문제가 발생할 수 있음. NVIDIA는 이에 대한 명확한 가이드라인과 마이그레이션 경로를 제시해야 할 것임.
-
AMD의 ROCm과 같은 경쟁 오픈 소스 GPU 컴퓨팅 플랫폼과의 비교도 흥미로운 주제가 될 수 있음. NVIDIA의 오픈 소스 전환으로 GPU 컴퓨팅 분야에서의 경쟁이 심화될 것으로 예상됨.
-
앞으로 NVIDIA가 커뮤니티의 기여를 적극적으로 수용하고, 오픈 소스 GPU 커널 모듈의 성능과 안정성을 지속적으로 개선해 나가기를 기대함. 이는 GPU 컴퓨팅의 대중화와 혁신을 가속화하는 데 기여할 것임.
Hacker News 의견
-
몇 년 전 Nvidia가 심각한 해킹을 당한 기억이 있음
- 해커들이 드라이버를 오픈 소스로 만들지 않으면 모든 데이터를 공개하겠다고 협박했음
- 아마도 해커들이 원하는 것을 얻었을 가능성이 있음
-
Nvidia의 커널 모듈은 두 가지 구성 요소로 나뉨
- 운영 체제에 독립적인 "OS-agnostic" 구성 요소
- Linux 커널 버전 및 구성에 특정한 "kernel interface layer" 구성 요소
- Nvidia .run 설치 패키지에 포함될 때, OS-agnostic 구성 요소는 바이너리로 제공됨
-
Nvidia에서 Sway와 Wayland 사용이 너무 어려워서 AMD로 전환했음
- 주요 문제는 이제 해결된 gitlab.freedesktop.org의 이슈였음
-
현재 Linux에서 Nvidia 드라이버 상황이 어떤지 궁금함
- 새로운 데스크탑을 AMD GPU로 구축했음
- 폐쇄형 소스나 부족한/구식 오픈 소스 드라이버의 문제를 피하고 싶었음
-
Nvidia가 완전히 오픈 소스 GPU 커널 모듈로 전환함
- 또는 Nvidia가 완전히 오픈 소스 GPU 커널 모듈로 전환 중임
-
이 변화가 Linux에서 Nvidia 드라이버 설치/업그레이드를 더 쉽게 만들기를 바람
- 드라이버, 유틸리티, 컨테이너 런타임 간의 버전 불일치를 해결하는 것이 악몽이었음
-
tarball을 던져주고 "가져와!"라고 말하는 것은 의미가 없음
- 실제로 업스트림 커널에 드라이버를 기여하기 전까지는 AMD를 구매할 것임
-
세부 사항을 꼼꼼히 읽는 회의적인 사람으로서, 이것은 좋은 움직임이라고 생각함
- Nvidia의 독점 문화가 강화될 가능성을 제외하고는 단점이 보이지 않음
-
Linus가 카메라를 보고 Nvidia에 손가락 욕을 했던 때를 기억함
- 이제 그 시간이 지났는지, 화해할 때가 되었는지, 여전히 문제가 있는지 궁금함
-
커널 모듈만이라도 무언가를 제공한 것은 의미가 있음
- 하지만 아마도 업스트림에 기여되지 않을 것임