Data Center / Cloud

NVIDIA, 오픈 소스 GPU 커널 모듈로 완전 전환

Reading Time: 4 minutes

NVIDIA는 R515 드라이버를 사용하여 듀얼 GPL 및 MIT 라이선싱을 통해 Linux GPU 커널 모듈 세트를 2022년 5월에 오픈 소스로 출시했습니다. 초기 릴리스는 알파 상태의 GeForce 및 워크스테이션 GPU와 함께 데이터센터 컴퓨팅 GPU를 대상으로 했습니다. 

당시에는 후속 릴리스에서 더욱 강력하고 완전한 기능을 갖춘 GeForce 및 워크스테이션 Linux 지원이 제공될 것이며, 궁극적으로 NVIDIA 오픈 커널 모듈이 비공개 소스 드라이버를 대체하게 될 것이라고 발표했습니다.

2년이 지난 지금, NVIDIA는 오픈 소스 GPU 커널 모듈을 통해 동등하거나 더 나은 애플리케이션 성능을 달성하고 새로운 기능을 추가했습니다:

  • 이종 메모리 관리(HMM) 지원
  • 컨피덴셜 컴퓨팅
  • Grace 플랫폼의 일관된 메모리 아키텍처
  • 기타 등등

이제 오픈 소스 GPU 커널 모듈로 완전히 전환하는 것이 올바른 움직임이라고 판단하여, 곧 출시될 R560 드라이버에서 이러한 변화를 적용합니다.

지원되는 GPU

모든 GPU가 오픈 소스 GPU 커널 모듈과 호환되는 것은 아닙니다.

NVIDIA Grace Hopper 또는 NVIDIA Blackwell과 같은 최첨단 플랫폼의 경우 오픈 소스 GPU 커널 모듈을 사용해야 합니다. 독점 드라이버는 이러한 플랫폼에서 지원되지 않습니다.

Turing, Ampere, Ada Lovelace 또는 Hopper 아키텍처의 최신 GPU의 경우 NVIDIA는 오픈 소스 GPU 커널 모듈로 전환할 것을 권장합니다.

Maxwell, Pascal 또는 Volta 아키텍처의 이전 GPU의 경우 오픈 소스 GPU 커널 모듈이 해당 플랫폼과 호환되지 않습니다. NVIDIA 독점 드라이버를 계속 사용하세요.

동일한 시스템에 구형 및 최신 GPU를 혼합하여 배포하는 경우, 계속해서 독점 드라이버를 사용하세요.

확실하지 않은 경우, 어떤 드라이버를 선택할지 안내하는 새로운 감지 도우미 스크립트를 제공합니다. 자세한 내용은 이 게시물 뒷부분의 설치 도우미 스크립트 사용 섹션을 참조하세요.

설치 프로그램 변경 사항

일반적으로 모든 설치 방법에서 설치되는 드라이버의 기본 버전은 독점 드라이버에서 오픈 소스 드라이버로 전환됩니다. 특별한 주의가 필요한 몇 가지 특정 상황이 있습니다:

  • CUDA 메타패키지를 사용하는 패키지 관리자
  • 실행 파일
  • 설치 도우미 스크립트
  • 패키지 관리자 세부 정보
  • Linux용 Windows 하위 시스템
  • CUDA 툴킷

CUDA 메타패키지와 함께 패키지 관리자 사용

패키지 관리자(.run 파일 아님)를 사용하여 CUDA 툴킷을 설치하는 경우 설치 메타패키지가 존재하며 일반적으로 사용됩니다. 최상위 cuda 패키지를 설치하면 CUDA 툴킷 및 관련 드라이버 릴리스의 조합을 설치합니다. 예를 들어, CUDA 12.5 릴리스 기간 동안 cuda를 설치하면 CUDA 툴킷 12.5와 함께 독점 NVIDIA 드라이버 555를 사용할 수 있습니다. 

그림 1은 이 패키지 구조를 보여줍니다.

그림 1. CUDA 툴킷 12.6 이전의 CUDA 패키지

이전에는 오픈 소스 GPU 커널 모듈을 사용하면 최상위 메타패키지를 사용할 수 없었습니다. 선택한 cuda-toolkit-X-Y 패키지와 함께 배포판별 NVIDIA 드라이버 오픈 패키지를 설치해야 했습니다.

CUDA 12.6 릴리스부터 흐름은 효과적으로 위치를 전환합니다(그림 2).

그림 2. CUDA 툴킷 12.6 릴리스 이후의 CUDA 패키지

실행 파일 사용

.run 파일을 사용하여 CUDA 또는 NVIDIA 드라이버를 설치하는 경우 설치 프로그램이 하드웨어를 쿼리하고 시스템에 가장 적합한 드라이버를 자동으로 설치합니다. 독점 드라이버와 오픈 소스 드라이버 중에서 선택할 수 있는 UI 토글도 사용할 수 있습니다.

CUDA .run 파일을 통해 설치하고 ncurses 사용자 인터페이스를 사용하는 경우 이제 다음과 유사한 메뉴가 표시됩니다.

┌──────────────────────────────────────────────────────────────────────────────┐ │ CUDA Driver                                                                  │ │   [ ] Do not install any of the OpenGL-related driver files                  │ │   [ ] Do not install the nvidia-drm kernel module                            │ │   [ ] Update the system X config file to use the NVIDIA X driver             │ │ – [X] Override kernel module type                                            │ │      [X] proprietary                                                         │ │      [ ] open                                                                │ │   Change directory containing the kernel source files                        │ │   Change kernel object output directory                                      │ │   Done                                                                       │ │                                                                              │ │                                                                              │ │                                                                              │ │ Up/Down: Move | Left/Right: Expand | ‘Enter’: Select | ‘A’: Advanced options │ └──────────────────────────────────────────────────────────────────────────────┘

드라이버 .run 파일을 통해 설치하는 경우 유사한 선택 항목이 표시됩니다(그림 3).

그림 3. 새로운 실행 파일 대화식 선택(드라이버 설치 프로그램)

또한 사용자 인터페이스 없이 또는 Ansible과 같은 자동화 도구를 사용하는 경우 명령줄을 사용하여 재정의를 전달하여 설치할 수 있습니다.

# sh ./cuda_12.6.0_560.22_linux.run --override --kernel-module-type=proprietary   # sh ./NVIDIA-Linux-x86_64-560.run --kernel-module-type=proprietary

설치 도우미 스크립트 사용

앞서 언급했듯이, 시스템의 GPU에 어떤 드라이버를 선택해야 할지 잘 모르는 경우를 위해 NVIDIA는 선택 프로세스를 안내하는 도우미 스크립트를 만들었습니다. 

이를 사용하려면 먼저 패키지 관리자를 통해 nvidia-driver-assistant 패키지를 설치한 다음, 스크립트를 실행합니다.

$ nvidia-driver-assistant

패키지 관리자 세부 정보

일관된 경험을 위해 NVIDIA는 패키지 관리자를 사용하여 CUDA 툴킷과 드라이버를 설치할 것을 권장합니다. 그러나 다양한 배포판에서 사용되는 패키지 관리 시스템의 구체적인 세부 사항이나 패키지가 구성되는 방식은 특정 배포판에 따라 다를 수 있습니다. 

이 섹션에서는 다양한 플랫폼에 필요한 구체적인 세부 정보, 주의 사항 또는 마이그레이션 단계를 간략하게 설명합니다. 

apt: Ubuntu 및 Debian 기반 배포

다음 명령을 실행합니다.

$ sudo apt-get install nvidia-open

Ubuntu 20.04에서 cuda 메타패키지를 사용하여 업그레이드하려면 먼저 커널 모듈을 엽니다.

$ sudo apt-get install -V nvidia-kernel-source-open   $ sudo apt-get install nvidia-open

dnf: Red Hat Enterprise Linux, Fedora, Kylin, Amazon Linux 또는 Rocky Linux

다음 명령을 실행합니다.

$ sudo dnf module install nvidia-driver:open-dkms

dnf 기반 배포판에서 cuda 메타패키지를 사용하여 업그레이드하려면 모듈 스트림을 비활성화해야 합니다.

$ echo "module_hotfixes=1" | tee -a /etc/yum.repos.d/cuda*.repo $ sudo dnf install --allowerasing nvidia-open $ sudo dnf module reset nvidia-driver

zypper: SUSE Linux Enterprise Server 또는 OpenSUSE

다음 명령 중 하나를 실행합니다.

# default kernel flavor $ sudo zypper install nvidia-open
# azure kernel flavor (sles15/x86_64) $ sudo zypper install nvidia-open-azure
# 64kb kernel flavor (sles15/sbsa) required for Grace-Hopper $ sudo zypper install nvidia-open-64k

패키지 관리자 요약

패키지 관리자 권장 사항을 표 형식으로 압축하여 단순화했습니다. 드라이버 버전 560 및 CUDA 툴킷 12.6 이후의 모든 릴리스는 이러한 패키징 규칙을 사용합니다.

배포판최신 버전 설치하기 특정 릴리스 설치하기 
Fedora/RHEL/Kylindnf module install nvidia-driver:open-dkmsdnf module install nvidia-driver:560-open
openSUSE/SLESzypper install nvidia-open{-zure,-64k}zipper install nvidia-open-560{-zure,-64k}
Debianapt-get install nvidia-openapt-get install nvidia-open-560
Ubuntuapt-get install nvidia-openapt-get install nvidia-open-560
표 1. 패키지 관리자 설치 권장 사항

자세한 내용은 NVIDIA 데이터센터 드라이버를 참조하세요.

Linux용 Windows 하위 시스템

Linux용 Windows 하위 시스템(WSL)은 호스트 Windows 운영 체제의 NVIDIA 커널 드라이버를 사용합니다. 이 플랫폼에 특별히 드라이버를 설치해서는 안 됩니다. WSL을 사용하는 경우에는 변경이나 조치가 필요하지 않습니다.

CUDA 툴킷

CUDA 툴킷 설치는 패키지 관리자를 통해 변경되지 않은 상태로 유지됩니다. 다음 명령을 실행합니다.

$ sudo apt-get/dnf/zypper install cuda-toolkit

자세한 정보

현재 오픈 소스 GPU 커널 모듈로 마이그레이션할 수 없는 경우 독점 드라이버를 설치하는 방법을 포함하여 NVIDIA 드라이버 또는 CUDA 툴킷을 설치하는 방법에 대한 자세한 내용은 CUDA 설치 가이드에서 드라이버 설치를 참조하세요.

관련 리소스

Discuss (1)

Tags