安裝 GPU 驅動程式


建立具有一或多個 GPU 的虛擬機器 (VM) 執行個體之後,系統需有 NVIDIA 裝置驅動程式,應用程式才能存取該裝置。請確認虛擬機器 (VM) 執行個體有足夠的可用磁碟空間。建立新的 VM 時,請為開機磁碟選擇至少 40 GB 的空間。

如要安裝驅動程式,您可以選擇下列兩種方式:

  • 如果您需要 GPU 來執行硬體加速 3D 圖形 (例如遠端桌面或遊戲),請參閱「安裝 NVIDIA RTX 虛擬工作站 (vWS) 的驅動程式」。

  • 如要安裝其他工作負載的 NVIDIA 驅動程式,請按照本文中的操作說明進行。

NVIDIA 驅動程式、CUDA Toolkit 和 CUDA 執行階段版本

在您的環境中,可能需要不同版本的驅動程式和執行階段元件。其中包括下列元件:

  • NVIDIA 驅動程式
  • CUDA 工具包
  • CUDA 執行階段

安裝這些元件時,您可以根據需求設定環境。舉例來說,如果您有較舊版本的 Tensorflow,且該版本與較舊版本的 CUDA 工具包相容,但您要使用的 GPU 需要較新版本的 NVIDIA 驅動程式,則可以安裝較舊版本的 CUDA 工具包,以及較新版本的 NVIDIA 驅動程式。

不過,您必須確認 NVIDIA 驅動程式和 CUDA Toolkit 版本相容。如需 CUDA 工具包和 NVIDIA 驅動程式相容性資訊,請參閱 NVIDIA 的 CUDA 相容性說明文件。

必要的 NVIDIA 驅動程式版本

在 Compute Engine 上執行的 NVIDIA GPU 建議使用下列 NVIDIA 驅動程式版本

機器系列 NVIDIA GPU 型號 Linux 建議的驅動程式 Windows 建議的驅動程式
A4 B200 570.124.06 不適用
A3 H200、H100 550.90.07 不適用
G2 L4 550.90.07 538.67
A2 A100 550.90.07 538.67
N1 T4、P4、P100 和 V100 535.183.01 538.67

使用 NVIDIA 指南在 VM 上安裝 GPU 驅動程式

在大多數 VM 上安裝 NVIDIA 驅動程式的方法之一,就是安裝 NVIDIA CUDA Toolkit

如要安裝 NVIDIA 工具包,請完成下列步驟:

  1. 選取支援您所需最低驅動程式CUDA Toolkit

  2. 連線至您要安裝驅動程式的 VM

  3. 在 VM 上,下載並安裝 CUDA 工具包。下表列出安裝套件和指南,說明建議的最低工具包。安裝工具包前,請務必完成安裝指南中的預安裝步驟。

    機器系列 NVIDIA GPU 型號 Linux 建議的 CUDA Toolkit Windows 建議的 CUDA Toolkit
    A4 B200 不適用
    A3 H200、H100 不適用
    G2 L4
    A2 A100
    N1
    • T4
    • V100
    • P100
    • P4

使用安裝指令碼在 VM 上安裝 GPU 驅動程式

您可以使用下列指令碼自動執行安裝程序。如要查看這些指令碼,請參閱 GitHub 存放區

Linux

請按照下列操作說明,在執行中的 VM 上安裝 GPU 驅動程式。

支援的作業系統

我們已在下列作業系統上測試 Linux 安裝指令碼:

  • Debian 11 和 12
  • Red Hat Enterprise Linux (RHEL) 8 和 9
  • Rocky Linux 8 和 9
  • Ubuntu 20、22 和 24

如果您在其他作業系統上使用這個指令碼,安裝作業可能會失敗。這個指令碼可安裝 NVIDIA 驅動程式和 CUDA Toolkit。如要安裝 GPU 驅動程式和 CUDA Toolkit,請完成下列步驟:

  1. 如果您在 VM 上使用 2.38.0 以上版本的 Ops Agent 收集 GPU 指標,請務必先停止代理程式,再使用這個安裝指令碼安裝或升級 GPU 驅動程式。

    安裝或升級 GPU 驅動程式後,請務必重新啟動 VM。

    如要停止 Ops Agent,請執行下列指令:

    sudo systemctl stop google-cloud-ops-agent
  2. 確認作業系統已安裝 Python 3。

  3. 下載安裝指令碼。

    curl -L https://storage.googleapis.com/compute-gpu-installation-us/installer/latest/cuda_installer.pyz --output cuda_installer.pyz
  4. 執行安裝指令碼。

    sudo python3 cuda_installer.pyz install_driver

    指令碼需要一段時間才能執行。這會重新啟動您的 VM。如果 VM 重新啟動,請再次執行指令碼,繼續安裝作業。

  5. 驗證安裝作業。請參閱「驗證 GPU 驅動程式安裝」一文。

  6. 您也可以使用這項工具安裝 CUDA Toolkit。如要安裝 CUDA Toolkit,請執行下列指令:

    sudo python3 cuda_installer.pyz install_cuda

    執行此指令碼可能需要至少 30 分鐘的時間。這會重新啟動您的 VM。如果虛擬機器重新啟動,請再次執行指令碼,繼續安裝程序。

  7. 確認 CUDA 工具包安裝作業。

    sudo python3 cuda_installer.pyz verify_cuda

Linux (開機指令碼)

請按照下列操作說明,在 VM 啟動時安裝 GPU 驅動程式。

支援的作業系統

我們已在下列作業系統上測試 Linux 安裝指令碼:

  • Debian 11 和 12
  • Red Hat Enterprise Linux (RHEL) 8 和 9
  • Rocky Linux 8 和 9
  • Ubuntu 20、22 和 24

如果您在其他作業系統上使用這個指令碼,安裝作業可能會失敗。這個指令碼可安裝 NVIDIA 驅動程式和 CUDA Toolkit

使用下列啟動指令碼自動安裝驅動程式和 CUDA Toolkit:

#!/bin/bash
if test -f /opt/google/cuda-installer
then
  exit
fi

mkdir -p /opt/google/cuda-installer
cd /opt/google/cuda-installer/ || exit

curl -fSsL -O https://storage.googleapis.com/compute-gpu-installation-us/installer/latest/cuda_installer.pyz
python3 cuda_installer.pyz install_cuda

Windows

這個安裝指令碼可用於已啟用安全啟動的 VM。

  • 對於使用 G2 機器系列的 Windows VM,這個指令碼只會安裝 NVIDIA 驅動程式。
  • 對於其他機器類型,指令碼會安裝 NVIDIA 驅動程式和 CUDA 工具包。

以系統管理員身分開啟 PowerShell 終端機,然後完成下列步驟:

  1. 如果您使用的是 Windows Server 2016,請將傳輸層安全標準 (TLS) 版本設為 1.2。

    [Net.ServicePointManager]::SecurityProtocol = 'Tls12'
    
  2. 下載指令碼。

    Invoke-WebRequest https://github.com/GoogleCloudPlatform/compute-gpu-installation/raw/main/windows/install_gpu_driver.ps1 -OutFile C:\install_gpu_driver.ps1
  3. 執行指令碼。

    C:\install_gpu_driver.ps1

    指令碼需要一段時間才能執行。安裝過程中不會顯示任何指令提示。指令碼退出後,系統就會安裝驅動程式。

    這段指令碼會在 VM 的以下預設位置安裝驅動程式:C:\Program Files\NVIDIA Corporation\

  4. 驗證安裝作業。請參閱「驗證 GPU 驅動程式安裝」一文。

安裝 GPU 驅動程式 (安全啟動 VM)

本操作說明適用於在使用安全啟動功能的 Linux VM 上安裝 GPU 驅動程式。

如果您使用的是 Windows VM 或未使用安全啟動的 Linux VM,請改為查看下列任一操作說明:

在 Linux VM 上安裝驅動程式的方式與在安全啟動 VM 上安裝的方式不同,因為這些 VM 要求所有核心模組都必須由系統信任的金鑰簽署。

這些操作說明僅適用於在 Ubuntu 18.04、20.04 和 22.04 作業系統上執行的安全啟動 Linux VM。我們正在開發更多 Linux 作業系統的支援功能。

如要在使用安全啟動的 Ubuntu VM 上安裝 GPU 驅動程式,請完成下列步驟:

  1. 連線至您要安裝驅動程式的 VM

  2. 更新存放區。

      sudo apt-get update
    
  3. 搜尋最新的 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,請執行下列指令:

    1. 啟用 Ubuntu FIPS 更新。

      sudo ua enable fips-updates
      
    2. 關機和重新啟動

      sudo shutdown -r now
      
    3. 取得最新套件。

      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

  4. 安裝核心模組套件和對應的 NVIDIA 驅動程式。

      sudo apt install linux-modules-nvidia-${NVIDIA_DRIVER_VERSION}-gcp nvidia-driver-${NVIDIA_DRIVER_VERSION}
    

    如果指令在 package not found error 中失敗,則儲存庫可能缺少最新的 NVIDIA 驅動程式。重試上一個步驟,並透過變更尾碼選取較舊的驅動程式版本。

  5. 確認 NVIDIA 驅動程式是否已安裝。您可能需要重新啟動 VM。

  6. 如果你重新啟動系統來驗證 NVIDIA 版本,重新啟動後,您必須重新執行步驟 3 中使用的指令,藉此重設 NVIDIA_DRIVER_VERSION 變數。

  7. 設定 APT 以使用 NVIDIA 套件存放區。

    1. 如要協助 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 EOL

    2. 安裝 software-properties-common。如果您使用 Ubuntu 最低版本映像檔,則必須執行這項操作。

       sudo apt install software-properties-common
       

    3. 設定 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
    4. 下載 cuda-keyring 套件。

      wget https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/cuda-keyring_1.0-1_all.deb
    5. 安裝 cuda-keyring 套件。

      sudo dpkg -i cuda-keyring_1.0-1_all.deb
    6. 新增 NVIDIA 存放區。

      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/$UBUNTU_VERSION/ /"

      畫面出現提示時,請選取預設動作,繼續使用目前的版本。

  8. 找出相容的 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

  9. 安裝 CUDA 驅動程式,並使用上一個步驟中找出的版本。

      sudo apt install cuda-drivers-${NVIDIA_DRIVER_VERSION}=${CUDA_DRIVER_VERSION} cuda-drivers=${CUDA_DRIVER_VERSION}
    

  10. 選用:保留 dkms 套件。

    啟用安全啟動後,所有核心模組都必須經過簽署才能載入。由 dkms 建構的核心模組無法在 VM 上運作,因為這些模組預設未正確簽署。這是可選步驟,但可避免您日後誤安裝其他 dkms 套件。

    如要保留 dkms 套件,請執行下列指令:

      sudo apt-get remove dkms && sudo apt-mark hold dkms
    
  11. 安裝 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

  12. 安裝 CUDA 套件。

      sudo apt install cuda-${CUDA_VERSION}
    
  13. 確認 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 550.90.07              Driver Version: 550.90.07      CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| 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  Tesla T4                       On  |   00000000:00:04.0 Off |                    0 |
| N/A   50C    P8             16W /   70W |       1MiB /  15360MiB |      0%      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 至新版核心。

Windows Server

連線至 Windows Server 執行個體,然後開啟 PowerShell 終端機,接著執行下列指令,確認驅動程式是否正常執行。

nvidia-smi

輸出結果會與下列內容相似:

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 538.67                 Driver Version: 538.67       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      |
+---------------------------------------------------------------------------------------+

後續步驟