インスタンスへの GPU の接続

Google Compute Engine は、仮想マシン インスタンスに接続できるグラフィック プロセッシング ユニット(GPU)を備えています。これらの GPU を使用して、機械学習やデータ処理などの特定のワークロードをインスタンス上で高速化することができます。

GPU の機能と、使用できる GPU ハードウェアのタイプの詳細については、Compute Engine の GPU をご覧ください。

始める前に

GPU を使用したインスタンスの作成

接続している GPU を使用してインスタンスを開始する前に、そのインスタンスに使用する起動ディスク イメージを選択します。必要に応じて任意の公開イメージまたはカスタム イメージも使用できますが、一部のイメージには、このガイドでは説明していない独自のドライバやインストール プロセスが必要な場合があります。イメージに適したドライバを選択する必要があります。詳細については、GPU ドライバのインストールをご覧ください。

1 つ以上の GPU を使用してインスタンスを作成するときには、インスタンスがホスト メンテナンス時に終了するように設定する必要があります。GPU を使用するインスタンスは、特定のハードウェア デバイスに割り当てられているため、ライブ マイグレーションができません。詳細については、GPU の制限をご覧ください。

接続中の 1 つ以上の GPU でインスタンスを作成するには、Google Cloud Platform Consolegcloud コマンドライン ツールまたは API を使用します。

Console

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. [インスタンスを作成] ボタンをクリックします。
  3. GPU で使用可能なゾーンを選択します。使用可能なゾーンと GPU のリストをご覧ください。
  4. [マシンタイプ] セクションで、このインスタンスで使用するマシンタイプを選択します。あるいは、カスタムマシンのタイプ設定は後で行うこともできます。
  5. [マシンタイプ] セッションで、[カスタマイズ] をクリックします。詳細なマシンタイプのオプションと使用可能な GPU が表示されます。
  6. [GPU] プルダウン メニューをクリックして、使用可能な GPU のリストを表示します。
  7. GPU のタイプと必要な GPU の数を指定します。
  8. 必要な GPU 設定に合わせてマシンタイプを調整します。値を変更しないと、マシンタイプのカスタマイズ画面を開く前に指定した事前定義のマシンタイプが使用されます。
  9. [ブートディスク] セクションの [変更] をクリックし、ブートディスクの構成を開始します。
  10. [OS イメージ] タブで、イメージを選択します。
  11. [選択] をクリックして、ブートディスクのオプションを確認します。
  12. インスタンスの起動中に GPU ドライバをインストールする起動スクリプトを追加することもできます。[自動化] の [起動スクリプト] に起動スクリプトのコンテンツを追加します。スクリプトの例については、GPU ドライバのインストールをご覧ください。
  13. ページの下部にある [作成] をクリックして、インスタンスを作成します。

gcloud

バージョン 144.0.0 以上の gcloud コマンドライン ツールがあり、beta コンポーネントがインストールされている必要があります。gcloud のバージョンとインストールされているコンポーネントを確認します。

gcloud version

必要なバージョンまたはコンポーネントが備わっていない場合は、ツールを更新し、beta コンポーネントをインストールします。

gcloud components update && gcloud components install beta

ベータ版の regions describe コマンドを使用し、GPU を使用してインスタンスを作成するリージョンに十分な GPU が割り当てられていることを確認します。

gcloud beta compute regions describe [REGION]

[REGION] は、GPU 割り当てを確認するリージョンです。

イメージ ファミリーの最新のイメージを使用してインスタンスを開始します。

gcloud beta compute instances create [INSTANCE_NAME] \
    --machine-type [MACHINE_TYPE] --zone [ZONE] \
    --accelerator type=[ACCELERATOR_TYPE],count=[ACCELERATOR_COUNT] \
    --image-family [IMAGE_FAMILY] --image-project [IMAGE_PROJECT] \
    --maintenance-policy TERMINATE --restart-on-failure \
    --metadata startup-script='[STARTUP_SCRIPT]'

各項目の意味は次のとおりです。

  • [INSTANCE_NAME] は、新しいインスタンスの名前です。
  • [MACHINE_TYPE] は、インスタンス用に選択したマシンタイプです。希望する GPU 数に応じて使用可能なマシンタイプについては、Compute Engine の GPU をご覧ください。
  • [ZONE] は、このインスタンスのゾーンです。
  • [IMAGE_FAMILY] は、使用可能なイメージ ファミリーの 1 つです。
  • [ACCELERATOR_COUNT] は、インスタンスに接続する GPU の数です。インスタンスのマシンタイプに応じた GPU 制限の一覧については、Compute Engine の GPU をご覧ください。
  • [ACCELERATOR_TYPE] は使用する GPU モデルです。使用可能な GPU モデル一覧については、Compute Engine の GPU をご覧ください。
  • [IMAGE_PROJECT] は、イメージ ファミリーが属するイメージ プロジェクトです。
  • [STARTUP_SCRIPT] は、インスタンスが起動しているときに GPU ドライバをインストールするために使用できるオプションの起動スクリプトです。GPU ドライバのインストールで例を確認できます。

たとえば、次の gcloud コマンドで、us-east1-d ゾーンで 1 つの NVIDIA® Tesla® K80 GPU と 2 つの vCPU を使用する Ubuntu 1604 インスタンスを開始します。startup-script メタデータは、パッケージを更新し、推奨のドライバ バージョンを使用して CUDA 8 をインストールするようにインスタンスに指示します。

gcloud beta compute instances create gpu-instance-1 \
    --machine-type n1-standard-2 --zone us-east1-d \
    --accelerator type=nvidia-tesla-k80,count=1 \
    --image-family ubuntu-1604-lts --image-project ubuntu-os-cloud \
    --maintenance-policy TERMINATE --restart-on-failure \
    --metadata startup-script='#!/bin/bash
    echo "Checking for CUDA and installing."
    # Check for CUDA and try to install.
    if ! dpkg-query -W cuda; then
      curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
      dpkg -i ./cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
      apt-get update
      apt-get install cuda -y
    fi'

この例のコマンドでインスタンスが開始されますが、CUDA とドライバのインストールが終了するまで数分かかります。

API

インスタンスに接続する GPU タイプを選択します。GET リクエストを発行し、特定のゾーンのプロジェクトで使用可能な GPU タイプをリストします。

GET https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/acceleratorTypes

ここで:

  • [PROJECT_ID] はプロジェクト ID です。
  • [ZONE] は、使用可能な GPU タイプをリストするゾーンです。

API で、POST リクエストを作成して新しいインスタンスを作成します。使用する GPU タイプを指定するには acceleratorType パラメータ、接続する GPU の数を指定するには acceleratorCount パラメータを含めます。さらに、onHostMaintenance パラメータを TERMINATE に設定します。

POST https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/instances?key={YOUR_API_KEY}
{
  "machineType": "https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/machineTypes/n1-highmem-2",
  "disks":
  [
    {
      "type": "PERSISTENT",
      "initializeParams":
      {
        "diskSizeGb": "[DISK_SIZE]",
        "sourceImage": "https://www.googleapis.com/compute/beta/projects/[IMAGE_PROJECT]/global/images/family/[IMAGE_FAMILY]"
      },
      "boot": true
    }
  ],
  "name": "[INSTANCE_NAME]",
  "networkInterfaces":
  [
    {
      "network": "https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/global/networks/[NETWORK]"
    }
  ],
  "guestAccelerators":
  [
    {
      "acceleratorCount": [ACCELERATOR_COUNT],
      "acceleratorType": "https://www.googleapis.com/compute/beta/projects/[PROJECT_ID]/zones/[ZONE]/acceleratorTypes/[ACCELERATOR_TYPE]"
    }
  ],
  "scheduling":
  {
    "onHostMaintenance": "terminate",
    "automaticRestart": true
  },
  "metadata":
  {
    "items":
    [
      {
        "key": "startup-script",
        "value": "[STARTUP_SCRIPT]"
      }
    ]
  }
}

ここで:

  • [INSTANCE_NAME] はインスタンスの名前です。
  • [PROJECT_ID] はプロジェクト ID です。
  • [ZONE] は、このインスタンスのゾーンです。
  • [MACHINE_TYPE] は、インスタンス用に選択したマシンタイプです。希望する GPU 数に応じて使用可能なマシンタイプについては、Compute Engine の GPU をご覧ください。
  • [IMAGE_PROJECT] は、イメージが属するイメージ プロジェクトです。
  • [IMAGE_FAMILY] は、インスタンスの起動ディスク イメージです。使用可能な公開イメージのリストから、イメージ ファミリーを指定します。
  • [DISK_SIZE] は、起動ディスクのサイズ(GB 単位)です。
  • [NETWORK] は、このインスタンスに使用する VPC ネットワークです。デフォルトのネットワークを使用する場合は default を指定します。
  • [ACCELERATOR_COUNT] は、インスタンスに接続する GPU の数です。インスタンスのマシンタイプに応じた GPU 制限の一覧については、Compute Engine の GPU をご覧ください。
  • [ACCELERATOR_TYPE] は使用する GPU モデルです。使用可能な GPU モデル一覧については、Compute Engine の GPU をご覧ください。
  • [STARTUP_SCRIPT] は、インスタンスが起動しているときに GPU ドライバをインストールするために使用できるオプションの起動スクリプトです。GPU ドライバのインストールで例を確認できます。

起動スクリプトを使用して GPU デバイス ドライバを自動的にインストールするには、GPU ドライバが正しくインストールされていることを確認します。

インスタンスの作成時に GPU ドライバのインストールに起動スクリプトを使用しなかった場合は、インスタンスに GPU ドライバを手動でインストールします。

GPU ドライバのインストール

1 つ以上の GPU を使用してインスタンスを作成したら、アプリケーションがデバイスにアクセスできるようにするため、システムにデバイス ドライバが必要となります。必要なドライバを任意に使用できますが、このガイドでは公開イメージを使用してインスタンスに独自のドライバをインストールする基本的な手順を説明します。

次のオプションのいずれかを使用して GPU ドライバをインストールできます。

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

一部のイメージでは、スクリプトを使用してドライバのインストール プロセスを簡素化できます。これらのスクリプトを起動スクリプトとしてインスタンスで使用するか、インスタンスにスクリプトをコピーし、sudo 権限のあるユーザーで端末から実行することができます。

選択した起動ディスク イメージでスクリプトが機能するように、スクリプトを作成する必要があります。インスタンスに対応するカスタム起動ディスク イメージをインポートした場合、そのカスタム イメージで正しく機能するように、起動スクリプトのカスタマイズが必要になる場合があります。

Windows Server インスタンスや、ドライバのインストール プロセスを自動化できない SLES 12 インスタンスでは、ドライバを手動でインストールします。

公開イメージの場合は、次のサンプル スクリプトを使用して、NVIDIA® Tesla® K80 GPU に関連付けられているドライバと CUDA をインストールできます。

CentOS

このスクリプトは既存の CUDA インストールの有無を確認し、CUDA 8 フルパッケージと関連する独自のドライバをインストールします。

CentOS 7 - CUDA 8 と最新のドライバ:

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q  cuda; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-8.0.61-1.x86_64.rpm
  rpm -i --force ./cuda-repo-rhel7-8.0.61-1.x86_64.rpm
  yum clean all
  yum install epel-release -y
  yum update -y
  yum install cuda -y
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q  cuda; then
  yum install cuda -y
fi

CentOS 7 のイメージからインストールすると、スクリプトがドライバと CUDA パッケージのインストールを完了した後でインスタンスの再起動が必要になることがあります。スクリプトが完了し、nvidia-smi コマンドが次のエラーを返した場合には、インスタンスを再起動してください。

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA
driver. Make sure that the latest NVIDIA driver is installed and
running.

CentOS 6 - CUDA 8 と最新のドライバ:

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q  cuda; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-8.0.61-1.x86_64.rpm
  rpm -i --force ./cuda-repo-rhel6-8.0.61-1.x86_64.rpm
  yum clean all
  yum install epel-release -y
  yum update -y
  yum install cuda -y
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q  cuda; then
  yum install cuda -y
fi

RHEL

このスクリプトは既存の CUDA インストールの有無を確認し、CUDA 8 フルパッケージと関連する独自のドライバをインストールします。

RHEL 7 - CUDA 8 と最新のドライバ:

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q  cuda; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-8.0.61-1.x86_64.rpm
  rpm -i --force ./cuda-repo-rhel7-8.0.61-1.x86_64.rpm
  curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  rpm -i --force ./epel-release-latest-7.noarch.rpm
  yum clean all
  yum update -y
  yum install cuda -y
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q  cuda; then
  yum install cuda -y
fi

RHEL 7 のイメージからインストールすると、スクリプトがドライバと CUDA パッケージのインストールを完了した後でインスタンスの再起動が必要になることがあります。スクリプトが完了し、nvidia-smi コマンドが次のエラーを返した場合には、インスタンスを再起動してください。

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA
driver. Make sure that the latest NVIDIA driver is installed and
running.

RHEL 6 - CUDA 8 と最新のドライバ:

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q  cuda; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-8.0.61-1.x86_64.rpm
  rpm -i --force ./cuda-repo-rhel6-8.0.61-1.x86_64.rpm
  curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
  rpm -i --force ./epel-release-latest-6.noarch.rpm
  yum clean all
  yum update -y
  yum install cuda -y
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q  cuda; then
  yum install cuda -y
fi

SLES

このスクリプトは既存の CUDA インストールの有無を確認し、CUDA 8 フルパッケージと関連する独自のドライバをインストールします。

SLES 12 - CUDA 8 と最新のドライバ:

SLES 12 インスタンスでは、ドライバを手動でインストールします。

SLES 11 - CUDA 8 と最新のドライバ:

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! rpm -q cuda; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/sles114/x86_64/cuda-repo-sles114-8.0.61-1.x86_64.rpm
  rpm -i --force ./cuda-repo-sles114-8.0.61-1.x86_64.rpm
  zypper --gpg-auto-import-keys refresh
  zypper install -ny cuda
fi
# Verify that CUDA installed; retry if not.
if ! rpm -q cuda; then
  zypper install -ny cuda
fi

Ubuntu

このスクリプトは既存の CUDA インストールの有無を確認し、CUDA 8 フルパッケージと関連する独自のドライバをインストールします。

Ubuntu 16.04 LTS または 16.10 - CUDA 8 と最新のドライバ:

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! dpkg-query -W cuda; then
  # The 16.04 installer works with 16.10.
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
  dpkg -i ./cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
  apt-get update
  apt-get install cuda -y
fi

Ubuntu 14.04 LTS - CUDA 8 と最新のドライバ:

#!/bin/bash
echo "Checking for CUDA and installing."
# Check for CUDA and try to install.
if ! dpkg-query -W cuda; then
  curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_8.0.61-1_amd64.deb
  dpkg -i ./cuda-repo-ubuntu1404_8.0.61-1_amd64.deb
  apt-get update
  apt-get install cuda -y
  apt-get install linux-headers-$(uname -r) -y
fi

Windows Server

Windows Server インスタンスでは、ドライバを手動でインストールします。

スクリプトの実行が終了したら、GPU ドライバがインストールされたことを確認できます。

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

GPU のドライバのインストールにスクリプトを使用できない場合は、ユーザー自身がドライバを手動でインストールできます。アプリケーションに対して最も効率的に機能するインストーラとドライバのバージョンを選択するのは、ユーザーの責任となります。特定のドライバが必要な場合、またはいずれかのインストール スクリプトが機能しないカスタム イメージまたは公開イメージにドライバをインストールする必要がある場合、このインストール方法を使用します。

このプロセスを使用すると、ほとんどの公開イメージのインスタンスにドライバを手動でインストールできます。カスタム イメージの場合は、固有環境で機能するようにプロセスの変更が必要になることがあります。

CentOS

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

  2. ドライバ レポジトリを選択し、それをインスタンスに追加します。たとえば、curl を使用して CUDA インストーラをダウンロードし、rpm コマンドでレポジトリをシステムに追加します。

    • CentOS 7

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-8.0.61-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-rhel7-8.0.61-1.x86_64.rpm
      

    • CentOS 6

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-8.0.61-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-rhel6-8.0.61-1.x86_64.rpm
      

  3. epel-release レポジトリをインストールします。このレポジトリには DKMS パッケージが含まれています。これは CentOS に NVIDIA ドライバをインストールするために必要です。

    $ sudo yum install epel-release
    

  4. Yum キャッシュを消去します。

    $ sudo yum clean all
    

  5. NVIDIA が含まれる CUDA をインストールします。

    $ sudo yum install cuda
    

RHEL

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

  2. ドライバ レポジトリを選択し、それをインスタンスに追加します。たとえば、curl を使用して CUDA インストーラをダウンロードし、rpm コマンドでレポジトリをシステムに追加します。

    • RHEL 7

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-8.0.61-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-rhel7-8.0.61-1.x86_64.rpm
      

    • RHEL 6

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/rhel6/x86_64/cuda-repo-rhel6-8.0.61-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-rhel6-8.0.61-1.x86_64.rpm
      

  3. epel-release レポジトリをインストールします。このレポジトリには、NVIDIA ドライバのインストールに必要な DKMS パッケージが含まれています。RHEL では、このレポジトリの .rpmfedoraproject.org からダウンロードしてシステムに追加します。

    • RHEL 7

      $ curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
      
      $ sudo rpm -i epel-release-latest-7.noarch.rpm
      

    • RHEL 6

      $ curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
      
      $ sudo rpm -i epel-release-latest-6.noarch.rpm
      

  4. Yum キャッシュを消去します。

    $ sudo yum clean all
    

  5. NVIDIA が含まれる CUDA をインストールします。

    $ sudo yum install cuda
    

SLES

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

  2. ドライバ レポジトリを選択し、それをインスタンスに追加します。たとえば、curl を使用して CUDA インストーラをダウンロードし、rpm コマンドでレポジトリをシステムに追加します。

    • SLES 12

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/sles12/x86_64/cuda-repo-sles12-8.0.61-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-sles12-8.0.61-1.x86_64.rpm
      

    • SLES 11

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/sles114/x86_64/cuda-repo-sles114-8.0.61-1.x86_64.rpm
      
      $ sudo rpm -i cuda-repo-sles114-8.0.61-1.x86_64.rpm
      

  3. Zypper を更新します。

    $ sudo zypper refresh
    

  4. NVIDIA が含まれる CUDA をインストールします。

    $ zypper install cuda
    

Ubuntu

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

  2. ドライバ レポジトリを選択し、それをインスタンスに追加します。たとえば、curl を使用して CUDA インストーラをダウンロードし、dpkg コマンドでレポジトリをシステムに追加します。

    • Ubuntu 16.04 LTS と 16.10

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
      
      $ sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
      

    • Ubuntu 14.04 LTS

      $ curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_8.0.61-1_amd64.deb
      
      $ sudo dpkg -i cuda-repo-ubuntu1404_8.0.61-1_amd64.deb
      

  3. パッケージ リストを更新します。

    $ sudo apt-get update
    

  4. NVIDIA が含まれる CUDA をインストールします。

    $ sudo apt-get install cuda
    

  5. Ubuntu 14.04 では、ドライバが正しく初期化されるように、現在のカーネル バージョンに対応するヘッダーのインストールが必要になることがあります。

    $ sudo apt-get install linux-headers-$(uname -r)
    

Windows Server

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

  2. .exe インストーラ ファイルを、使用するドライバのバージョンに対応するインスタンスにダウンロードします。ほとんどの Windows Server インスタンスでは、次のオプションのいずれかを使用できます。

    たとえば、管理者として PowerShell ターミナルを開き、wget コマンドを使用して、必要なドライバのインストーラをダウンロードします。

    PS C:> wget https://developer.nvidia.com/compute/cuda/8.0/prod/network_installers/cuda_8.0.44_windows_network-exe -o cuda_8.0.44_windows_network.exe
    

  3. .exe インストーラを実行します。たとえば、管理者として PowerShell ターミナルを開き、次のコマンドを実行します。

    PS C:> .\cuda_8.0.44_windows_network.exe
    

インストーラの実行が終了したら、GPU ドライバがインストールされたことを確認できます。

GPU ドライバのインストールの確認

ドライバのインストールが終了したら、ドライバのインストールと初期化が正しく行われたことを確認します。

Linux

Linux インスタンスに接続し、nvidia-smi コマンドを使用して、ドライバが正しく実行されていることを確認します。

$ nvidia-smi

Mon Jan 26 10:23:26 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.26                 Driver Version: 375.26                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla K80           Off  | 0000:00:04.0     Off |                    0 |
| N/A   43C    P0    72W / 149W |      0MiB / 11439MiB |    100%      Default |
+-------------------------------+----------------------+----------------------+

Windows Server

Windows Server インスタンスに接続し、nvidia-smi.exe コマンドを使用して、ドライバが正しく実行されていることを確認します。

PS C:> & 'C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe'

Mon Jan 27 13:06:50 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 369.30                 Driver Version: 369.30                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla K80           TCC  | 0000:00:04.0     Off |                    0 |
| N/A   52C    P8    30W / 149W |      0MiB / 11423MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

ドライバが機能せず、ドライバをインストールするためにスクリプトを使用していた場合、起動スクリプトのログを確認し、スクリプトが完了していて、インストール プロセス時に失敗していないことを確認します。

ホスト メンテナンス イベントの処理

GPU を使用するインスタンスはライブ マイグレーションができないため、ホストシステムがメンテナンスのためにダウンする必要がある場合に、インスタンスを終了するように設定する必要があります。インスタンスを別のホストシステムで自動的に再起動するように設定することもできますが、システムの再起動によってアプリケーションが中断します。この中断を防ぐため、ユーザーの設定したスケジュールに従ってインスタンスを定期的に再起動することができます。インスタンスがホスト メンテナンスのためにスケジュールされる時期を選択し、システムの再起動を処理できるようにインスタンスを準備することもできます。

ホスト メンテナンス イベントについて事前に通知を受け取るようにするには、/computeMetadata/v1/instance/maintenance-event メタデータ値をモニタリングします。メタデータ サーバーへのリクエストから NONE が返された場合、インスタンスは終了するようにスケジュールされません。たとえば、インスタンス内から次のコマンドを実行します。

$ curl http://metadata.google.internal/computeMetadata/v1/instance/maintenance-event -H "Metadata-Flavor: Google"

NONE

メタデータ サーバーからタイムスタンプが返された場合、そのタイムスタンプは、インスタンスを強制的に終了する時期を示します。Compute Engine は GPU インスタンスに 1 時間の終了通知を送信します。一方、通常のインスタンスは 60 秒の通知のみ受け取ります。

次のステップ

フィードバックを送信...

Compute Engine ドキュメント