GPU가 1개 이상인 가상 머신(VM) 인스턴스를 만들 때는 애플리케이션이 기기에 액세스할 수 있도록 시스템에 NVIDIA 기기 드라이버가 필요합니다. 가상 머신(VM) 인스턴스에 사용 가능한 디스크 공간이 충분한지 확인합니다. 새 VM을 만들 때 부팅 디스크로 최소 40GB를 선택해야 합니다.
드라이버를 설치하려면 두 가지 옵션 중에서 선택할 수 있습니다.
원격 데스크톱 또는 게임과 같은 하드웨어 가속 3D 그래픽에 GPU가 필요한 경우 NVIDIA RTX 가상 워크스테이션(vWS)용 드라이버 설치를 참조하세요.
다른 워크로드의 경우 이 문서의 안내에 따라 NVIDIA 드라이버를 설치합니다.
NVIDIA 드라이버, CUDA 툴킷, CUDA 런타임 버전
환경에 필요할 수 있는 드라이버 및 런타임 구성요소에는 여러 버전이 있습니다. 이러한 구성요소는 다음과 같습니다.
- NVIDIA 드라이버
- CUDA 툴킷
- CUDA 런타임
이러한 구성요소를 설치할 때는 요구에 맞게 해당 환경을 구성할 수 있습니다. 예를 들어 이전 버전의 CUDA 툴킷에서 가장 효과적으로 작동하는 이전 버전의 Tensorflow가 있지만 사용하려는 GPU에 이후 버전의 NVIDIA 드라이버가 필요한 경우에는 이후 버전의 NVIDIA 드라이버와 함께 이전 버전의 CUDA 툴킷을 설치할 수 있습니다.
하지만 NVIDIA 드라이버와 CUDA 툴킷 버전이 호환되는지 확인해야 합니다. CUDA 툴킷과 NVIDIA 드라이버의 호환성에 대해서는 CUDA 호환성에 대한 NVIDIA 문서를 참조하세요.
필요한 NVIDIA 드라이버 버전
Compute Engine에서 실행되는 NVIDIA GPU의 경우 다음 NVIDIA 드라이버 버전을 사용하는 것이 좋습니다.
GPU 모델 | Linux | Windows |
---|---|---|
NVIDIA H100 |
|
해당 사항 없음 |
NVIDIA L4 | 525.60.13 이상 | 528.89 |
NVIDIA A100, T4, P4, P100, V100 | 470.57.02 이상 | 471.41 이상 |
NVIDIA K80(지원 종료) | 410.79 - 최신 R470 버전 | 426.00 - 최신 R470 버전 |
K80 GPU의 경우 NVIDIA는 R470 드라이버 브랜치가 디버그 지원을 받을 최종 드라이버 버전이라고 발표했습니다. 이 업데이트를 검토하려면 NVIDIA 소프트웨어 지원 매트릭스를 참조하세요.
VM에 GPU 드라이버 설치
대부분의 VM에 NVIDIA 드라이버를 설치할 수 있는 한 가지 방법은 NVIDIA CUDA 툴킷을 설치하는 것입니다.
NVIDIA 툴킷을 설치하려면 다음 단계를 완료합니다.
드라이버를 설치하려는 VM에 연결합니다.
VM에서 CUDA 툴킷을 다운로드하고 설치합니다. 권장 툴킷의 설치 패키지와 가이드는 다음 표에 나와 있습니다. 툴킷을 설치하기 전 설치 가이드에 있는 사전 설치 단계를 완료해야 합니다.
GPU 모델 최소 권장 CUDA 툴킷 버전 최소 버전의 설치 안내 - NVIDIA H100
- Linux: CUDA 툴킷 12.2 업데이트1
- Windows: 해당 사항 없음
- Linux: CUDA 12.2 설치 가이드
- Windows: 해당 사항 없음
- NVIDIA L4
- Linux: CUDA 툴킷 12.1
- Windows: CUDA 툴킷 12.2 업데이트 2
- Linux: CUDA 12.1 설치 가이드
- Windows: CUDA 12.2 설치 가이드
- NVIDIA A100
- NVIDIA T4
- NVIDIA V100
- NVIDIA P100
- NVIDIA P4
- Linux: CUDA 툴킷 11.4
- Windows: CUDA 툴킷 11.4
- Linux: CUDA 11.4 설치 가이드
- Windows: CUDA 11.4 설치 가이드
설치 스크립트를 사용하여 GPU 드라이버 설치
다음 스크립트를 사용하여 설치 프로세스를 자동화할 수 있습니다. 이러한 스크립트를 검토하려면 GitHub 저장소를 참조하세요.
제한사항
- 이 스크립트는 보안 부팅이 사용 설정된 Linux VM에서는 작동하지 않습니다. 보안 부팅이 사용 설정된 Linux VM의 경우에는 GPU 드라이버(보안 부팅 VM) 설치를 참조하세요.
VM에서 GPU 측정항목을 수집하는 운영 에이전트 버전이 2.38.0 이상인 경우 이 설치 스크립트를 사용해 GPU 드라이버를 설치하거나 업그레이드하기 전에 에이전트를 중지해야 합니다.
GPU 드라이버의 설치 또는 업그레이드를 완료한 후 VM을 재부팅해야 합니다.
운영 에이전트를 중지하려면 다음 명령어를 실행합니다.
sudo systemctl stop google-cloud-ops-agent
Linux
지원되는 운영체제
Linux 설치 스크립트는 다음 운영체제에서 테스트되었습니다.
- CentOS 7 및 8
- Debian 10 및 11
- Red Hat Enterprise Linux(RHEL) 7, 8, 9
- Rocky Linux 8 및 9
- Ubuntu 20 및 22
이 스크립트를 다른 운영체제에서 사용하면 설치가 실패합니다. Linux VM의 경우 이 스크립트는 NVIDIA 드라이버만 설치합니다.
Python 3이 운영체제에 설치되어 있는지 확인합니다.
설치 스크립트를 다운로드합니다.
curl https://raw.githubusercontent.com/GoogleCloudPlatform/compute-gpu-installation/main/linux/install_gpu_driver.py --output install_gpu_driver.py
설치 스크립트를 실행합니다.
sudo python3 install_gpu_driver.py
스크립트를 실행하는 데 시간이 걸립니다. VM이 다시 시작될 수 있습니다. VM이 다시 시작되면 스크립트를 다시 실행하여 설치를 계속합니다.
설치를 확인합니다. GPU 드라이버 설치 확인을 참조하세요.
Windows
이 설치 스크립트는 보안 부팅이 사용 설정된 VM에서 사용할 수 있습니다.
- G2 머신 시리즈를 사용하는 Windows VM의 경우 이 스크립트는 NVIDIA 드라이버만 설치합니다.
- 다른 머신 유형의 경우 스크립트가 NVIDIA 드라이버와 CUDA 툴킷을 설치합니다.
관리자 권한으로 PowerShell 터미널을 열고 다음 단계를 완료합니다.
Windows Server 2016을 사용하는 경우 전송 계층 보안(TLS) 버전을 1.2로 설정합니다.
[Net.ServicePointManager]::SecurityProtocol = 'Tls12'
스크립트를 다운로드합니다.
Invoke-WebRequest https://github.com/GoogleCloudPlatform/compute-gpu-installation/raw/main/windows/install_gpu_driver.ps1 -OutFile C:\install_gpu_driver.ps1
스크립트를 실행합니다.
C:\install_gpu_driver.ps1
스크립트를 실행하는 데 시간이 걸립니다. 설치 프로세스 중에는 명령어 프롬프트가 제공되지 않습니다. 스크립트가 종료되면 드라이버가 설치된 것입니다.
이 스크립트는 VM의 다음 기본 위치
C:\Program Files\NVIDIA Corporation\
에 드라이버를 설치합니다.설치를 확인합니다. GPU 드라이버 설치 확인을 참조하세요.
GPU 드라이버 설치(보안 부팅 VM)
다음은 보안 부트를 사용하는 Linux VM에 GPU 드라이버를 설치하는 방법에 대한 안내입니다.
Windows VM 또는 보안 부트를 사용하지 않는 Linux VM을 사용하는 경우에는 대신 다음 안내 중 하나를 검토하세요.
Linux VM에서는 모든 커널 모듈을 시스템이 신뢰하는 키로 서명해야 하기 때문에 보안 부트 VM에 드라이버를 설치하는 작업은 Linux VM에 설치할 때와 다릅니다.
이 안내는 Ubuntu 18.04, 20.04, 22.04 운영체제에서 실행되는 보안 부트 Linux VM에만 사용할 수 있습니다. 앞으로도 더 많은 Linux 운영체제가 지원될 예정입니다.
보안 부트를 사용하는 Ubuntu VM에 GPU 드라이버를 설치하려면 다음 단계를 완료하세요.
드라이버를 설치하려는 VM에 연결합니다.
저장소를 업데이트합니다.
sudo apt-get update
최신 NVIDIA 커널 모듈 패키지 또는 원하는 버전을 검색합니다. 이 패키지에는 Ubuntu 키로 서명된 NVIDIA 커널 모듈이 포함됩니다. 이전 버전을 찾고 싶으면 후행 매개변수의 번호를 변경하여 이전 버전을 가져옵니다. 예를 들어
tail -n 2
를 지정합니다.Ubuntu PRO 및 LTS
Ubuntu PRO 및 LTS의 경우 다음 명령어를 실행합니다.
NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp$' | awk '{print $1}' | sort | tail -n 1 | head -n 1 | awk -F"-" '{print $4}')
Ubuntu PRO FIPS
Ubuntu PRO FIPS의 경우 다음 명령어를 실행합니다.
Ubuntu FIPS 업데이트를 사용 설정합니다.
sudo ua enable fips-updates
종료하고 재부팅합니다.
sudo shutdown -r now
최신 패키지를 다운로드합니다.
NVIDIA_DRIVER_VERSION=$(sudo apt-cache search 'linux-modules-nvidia-[0-9]+-gcp-fips$' | awk '{print $1}' | sort | tail -n 1 | head -n 1 | awk -F"-" '{print $4}')
echo $NVIDIA_DRIVER_VERSION
을 실행하여 선택한 드라이버 버전을 확인할 수 있습니다. 그러면455
과 같은 버전 문자열이 출력됩니다.커널 모듈 패키지 및 해당 NVIDIA 드라이버를 설치합니다.
sudo apt install linux-modules-nvidia-${NVIDIA_DRIVER_VERSION}-gcp nvidia-driver-${NVIDIA_DRIVER_VERSION}
package not found error
와 함께 명령어가 실패하면 저장소에서 최신 NVIDIA 드라이버가 누락되었기 때문일 수 있습니다. 이전 단계를 재시도하고 후행 번호를 변경하여 이전 드라이버 버전을 선택합니다.NVIDIA 드라이버가 설치되었는지 확인합니다. VM을 재부팅해야 할 수도 있습니다.
시스템을 재부팅하여 NVIDIA 버전을 확인하는 경우 재부팅한 후 3단계에서 사용한 명령어를 다시 실행하여
NVIDIA_DRIVER_VERSION
변수를 재설정해야 합니다.NVIDIA 패키지 저장소를 사용하도록 APT를 구성합니다.
APT가 올바른 종속 항목을 선택할 수 있도록 저장소를 다음과 같이 고정시킵니다.
sudo tee /etc/apt/preferences.d/cuda-repository-pin-600 > /dev/null <<EOL Package: nsight-compute Pin: origin *ubuntu.com* Pin-Priority: -1
Package: nsight-systems Pin: origin *ubuntu.com* Pin-Priority: -1
Package: nvidia-modprobe Pin: release l=NVIDIA CUDA Pin-Priority: 600
Package: nvidia-settings Pin: release l=NVIDIA CUDA Pin-Priority: 600
Package: * Pin: release l=NVIDIA CUDA Pin-Priority: 100 EOLsoftware-properties-common
를 설치합니다. Ubuntu 최소 이미지를 사용할 경우에 필요합니다.sudo apt install software-properties-common
Ubuntu 버전을 설정합니다.
Ubuntu 18.04
Ubuntu 18.04에서는 다음 명령어를 실행합니다.
export UBUNTU_VERSION=ubuntu1804/x86_64
Ubuntu 20.04
Ubuntu 20.04에서는 다음 명령어를 실행합니다.
export UBUNTU_VERSION=ubuntu2004/x86_64
Ubuntu 22.04
Ubuntu 22.04에서는 다음 명령어를 실행합니다.
export UBUNTU_VERSION=ubuntu2204/x86_64
cuda-keyring
패키지를 다운로드합니다.wget https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/cuda-keyring_1.0-1_all.deb
cuda-keyring
패키지를 설치합니다.sudo dpkg -i cuda-keyring_1.0-1_all.deb
NVIDIA 저장소를 추가합니다.
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/ /"
메시지가 표시되면 기본 작업을 선택하여 현재 버전을 유지합니다.
호환되는 CUDA 드라이버 버전을 찾습니다.
다음 스크립트는 바로 전에 설치한 NVIDIA 드라이버와 호환되는 최신 CUDA 드라이버 버전을 확인합니다.
CUDA_DRIVER_VERSION=$(apt-cache madison cuda-drivers | awk '{print $3}' | sort -r | while read line; do if dpkg --compare-versions $(dpkg-query -f='${Version}\n' -W nvidia-driver-${NVIDIA_DRIVER_VERSION}) ge $line ; then echo "$line" break fi done)
echo $CUDA_DRIVER_VERSION
을 실행하여 CUDA 드라이버 버전을 확인할 수 있습니다. 그러면455.32.00-1
과 같은 버전 문자열이 출력됩니다.이전 단계에서 식별된 버전으로 CUDA 드라이버를 설치합니다.
sudo apt install cuda-drivers-${NVIDIA_DRIVER_VERSION}=${CUDA_DRIVER_VERSION} cuda-drivers=${CUDA_DRIVER_VERSION}
선택사항:
dkms
패키지를 보류합니다.보안 부팅을 사용 설정한 후에는 로드할 모든 커널 모듈을 서명해야 합니다.
dkms
로 빌드된 커널 모듈은 기본적으로 올바르게 서명되지 않았기 때문에 VM에서 작동하지 않습니다. 이 단계는 선택사항이지만 이후에 다른dkms
패키지를 실수로 설치하는 것을 방지하는 데 도움이 됩니다.dkms
패키지를 보류하려면 다음 명령어를 실행합니다.sudo apt-get remove dkms && sudo apt-mark hold dkms
CUDA 툴킷 및 런타임을 설치합니다.
적합한 CUDA 버전을 선택합니다. 다음 스크립트는 바로 전에 설치한 CUDA 드라이버와 호환되는 최신 CUDA 버전을 확인합니다.
CUDA_VERSION=$(apt-cache showpkg cuda-drivers | grep -o 'cuda-runtime-[0-9][0-9]-[0-9],cuda-drivers [0-9\\.]*' | while read line; do if dpkg --compare-versions ${CUDA_DRIVER_VERSION} ge $(echo $line | grep -Eo '[[:digit:]]+\.[[:digit:]]+') ; then echo $(echo $line | grep -Eo '[[:digit:]]+-[[:digit:]]') break fi done)
echo $CUDA_VERSION
을 실행하여 CUDA 버전을 확인할 수 있습니다. 그러면11-1
과 같은 버전 문자열이 출력됩니다.CUDA 패키지를 설치합니다.
sudo apt install cuda-${CUDA_VERSION}
CUDA 설치를 확인합니다.
sudo nvidia-smi
/usr/local/cuda/bin/nvcc --version
첫 번째 명령어는 GPU 정보를 출력합니다. 두 번째 명령어는 설치된 CUDA 컴파일러 버전을 출력합니다.
GPU 드라이버 설치 확인
드라이버 설치 단계를 완료한 후 드라이버가 올바르게 설치 및 초기화되었는지 확인합니다.
Linux
Linux 인스턴스에 연결하고 nvidia-smi
명령어를 사용하여 드라이버가 올바르게 실행되고 있는지 확인합니다.
sudo nvidia-smi
출력은 다음과 비슷합니다.
Tue Mar 21 19:50:15 2023 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 530.30.02 Driver Version: 530.30.02 CUDA Version: 12.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA L4 Off | 00000000:00:03.0 Off | 0 | | N/A 63C P0 30W / 75W | 0MiB / 23034MiB | 8% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
이 명령어가 실패하면 다음을 검토합니다.
VM에 연결된 GPU가 있는지 확인합니다.
다음 명령어를 사용하여 NVIDIA PCI 기기를 확인합니다.
sudo lspci | grep -i "nvidia"
.드라이버 커널 버전과 VM 커널 버전이 동일한지 확인합니다.
- VM 커널 버전을 확인하려면
uname -r
을 실행합니다. - 드라이버 커널 버전을 확인하려면
sudo apt-cache show linux-modules-nvidia-NVIDIA_DRIVER_VERSION-gcp
를 실행합니다.
버전이 일치하지 않으면 VM을 새 커널 버전으로 재부팅합니다.
- VM 커널 버전을 확인하려면
Windows Server
Windows Server 인스턴스에 연결하고 PowerShell 터미널을 연 후 다음 명령어를 실행하여 드라이버가 제대로 실행 중인지 확인합니다.
nvidia-smi
출력은 다음과 비슷합니다.
+---------------------------------------------------------------------------------------+ | NVIDIA-SMI 537.13 Driver Version: 537.13 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA L4 WDDM | 00000000:00:03.0 Off | 0 | | N/A 66C P8 17W / 72W | 128MiB / 23034MiB | 0% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | 0 N/A N/A 4888 C+G ...CBS_cw5n1h2txyewy\TextInputHost.exe N/A | | 0 N/A N/A 5180 C+G ....Search_cw5n1h2txyewy\SearchApp.exe N/A | +---------------------------------------------------------------------------------------+
다음 단계
- GPU 성능을 모니터링하려면 GPU 성능 모니터링을 참조하세요.
- GPU 호스트 유지보수를 처리하려면 GPU 호스트 유지보수 이벤트 처리를 참조하세요.
- 네트워크 성능을 향상시키려면 더 높은 네트워크 대역폭 사용을 참조하세요.
- GPU VM 문제를 해결하려면 GPU VM 문제 해결을 참조하세요.