GPU ドライバをインストールする


1 つ以上の GPU を使用する仮想マシン(VM)インスタンスを作成すると、アプリケーションがデバイスにアクセスできるようにするために、システムに NVIDIA デバイス ドライバが必要になります。仮想マシン(VM)インスタンスに十分な空きディスク容量があることを確認します。新しい VM を作成する場合は、ブートディスクに 40 GB 以上を選択する必要があります。

ドライバをインストールするには、次の 2 つの方法があります。

  • リモート デスクトップやゲームなど、ハードウェア アクセラレーションの 3D グラフィックに GPU が必要な場合は、NVIDIA RTX 仮想ワークステーション(vWS)用のドライバをインストールするをご覧ください。

  • 他のワークロードについては、このドキュメントの手順に沿って NVIDIA ドライバをインストールしてください。

NVIDIA ドライバ、CUDA ツールキット、CUDA ランタイム バージョン

環境内で必要になるドライバやランタイムのコンポーネントのバージョンが異なる可能性があります。次のコンポーネントがこれに該当します。

  • NVIDIA ドライバ
  • CUDA ツールキット
  • CUDA ランタイム

これらのコンポーネントをインストールする際に、ニーズに合わせて環境を構成できます。たとえば、以前のバージョンの CUDA ツールキットで適切に機能するバージョンの Tensorflow をお持ちで、使用する GPU が新しいバージョンの NVIDIA ドライバを必要とする場合、以前のバージョンの CUDA ツールキットを新しいバージョンの NVIDIA ドライバとともにインストールできます。

ただし、NVIDIA ドライバと CUDA ツールキットのバージョンに互換性があることを確認する必要があります。CUDA ツールキットと NVIDIA ドライバの互換性については、CUDA の互換性に関する NVIDIA ドキュメントをご覧ください。

必要な NVIDIA ドライバのバージョン

Compute Engine で動作する NVIDIA GPU の場合、次の NVIDIA ドライバ バージョンを推奨します

マシンシリーズ NVIDIA GPU モデル Linux 推奨ドライバ Windows 推奨ドライバ
A3 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 ドライバをインストールする

NVIDIA CUDA ツールキットをインストールすることにより、ほとんどの VM に NVIDIA ドライバをインストールできます。

NVIDIA ツールキットをインストールする手順は次のとおりです。

  1. 必要な最小ドライバをサポートする CUDA ツールキットを選択します。

  2. ドライバをインストールする VM に接続します。

  3. VM に CUDA ツールキットをダウンロードしてインストールします。次の表に、推奨される最小ツールキットのインストール パッケージとガイドを示します。ツールキットをインストールする前に、インストール ガイドにあるインストール前の手順を完了しておいてください。

    マシンシリーズ NVIDIA GPU モデル Linux 推奨 CUDA ツールキット Windows 推奨 CUDA ツールキット
    A3 H100 なし
    G2 L4
    A2 A100
    N1
    • T4
    • V100
    • P100
    • P4

インストール スクリプトを使用して VM に GPU ドライバをインストールする

以下のスクリプトを使用して、インストール プロセスを自動化できます。これらのスクリプトを確認するには、GitHub リポジトリをご覧ください。

Linux

実行中の VM に GPU ドライバをインストールするには、次の手順を行います。

サポートされているオペレーティング システム

Linux のインストール スクリプトは、次のオペレーティング システムでテストされています。

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

このスクリプトを他のオペレーティング システムで使用すると、インストールが失敗する可能性があります。このスクリプトでは、NVIDIA ドライバと CUDA ツールキットをインストールできます。GPU ドライバと CUDA ツールキットをインストールする手順は次のとおりです。

  1. VM に GPU 指標を収集する Ops エージェントのバージョン 2.38.0 以降を使用している場合は、このインストール スクリプトを使用して GPU ドライバをインストールまたはアップグレードする前に、エージェントを停止する必要があります。

    GPU ドライバのインストールまたはアップグレードが完了したら、VM を再起動する必要があります。

    Ops エージェントを停止するには、次のコマンドを実行します。

    sudo systemctl stop google-cloud-ops-agent
  2. オペレーティング システムに Python 3 がインストールされていることを確認します。

  3. インストール スクリプトをダウンロードします。

    curl -L https://github.com/GoogleCloudPlatform/compute-gpu-installation/releases/download/cuda-installer-v1.1.0/cuda_installer.pyz --output cuda_installer.pyz
  4. インストール スクリプトを実行します。

    sudo python3 cuda_installer.pyz install_driver

    スクリプトの実行には時間がかかります。VM が再起動します。VM が再起動した場合は、スクリプトを再度実行してインストールを続行します。

  5. インストールを確認します。GPU ドライバのインストールの確認をご覧ください。

  6. このツールを使用して CUDA ツールキットをインストールすることもできます。CUDA Toolkit をインストールするには、次のコマンドを実行します。

    sudo python3 cuda_installer.pyz install_cuda

    このスクリプトの実行には 30 分以上を要する場合があります。VM が再起動します。VM が再起動した場合は、スクリプトを再度実行してインストールを続行します。

  7. CUDA ツールキットのインストールを確認します。

    sudo python3 cuda_installer.pyz verify_cuda

Linux(起動スクリプト)

VM の起動時に GPU ドライバをインストールするには、次の手順を行います。

サポートされているオペレーティング システム

Linux のインストール スクリプトは、次のオペレーティング システムでテストされています。

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

このスクリプトを他のオペレーティング システムで使用すると、インストールが失敗する可能性があります。このスクリプトでは、NVIDIA ドライバと CUDA ツールキットをインストールできます。

次の起動スクリプトを使用して、ドライバと CUDA ツールキットのインストールを自動化します。

#!/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://github.com/GoogleCloudPlatform/compute-gpu-installation/releases/download/cuda-installer-v1.1.0/cuda_installer.pyz
python3 cuda_installer.pyz install_cuda

Windows

このインストール スクリプトは、セキュアブートが有効になっている VM で使用できます。

  • G2 マシンシリーズを使用する Windows VM の場合、このスクリプトは NVIDIA ドライバのみをインストールします。
  • 他のマシンタイプでは、スクリプトによって NVIDIA ドライバと CUDA ツールキットがインストールされます。

管理者として PowerShell ターミナルを開き、次の手順を行います。

  1. Windows Server 2016 を使用している場合は、Transport Layer Security(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 を使用している場合は、代わりに次の手順のいずれかを確認してください。

セキュアブート VM へのドライバのインストールは、Linux VM によって異なります。Linux 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 パラメータの番号を変更して、以前のバージョンを取得します。例: 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. NVIDIA パッケージ リポジトリを使用するように APT を構成します。

    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)
    

    CUDA ドライバのバージョンを確認するには、echo $CUDA_DRIVER_VERSION を実行します。出力は、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)
    

    CUDA のバージョンを確認するには、echo $CUDA_VERSION を実行します。出力は、11-1 のようなバージョン文字列です。

  12. CUDA パッケージをインストールします。

      sudo apt install cuda-${CUDA_VERSION}
    
  13. CUDA のインストールを確認します。

      sudo nvidia-smi
      /usr/local/cuda/bin/nvcc --version
    

    最初のコマンドで GPU 情報を出力します。2 番目のコマンドは、インストールされている 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      |
+---------------------------------------------------------------------------------------+

次のステップ