Linux インスタンスへの NVIDIA ドライバーのインストール - Amazon Elastic Compute Cloud

Linux インスタンスへの NVIDIA ドライバーのインストール

NVIDIA GPU がアタッチされたインスタンス (P3 インスタンスや G4dn インスタンスなど) には、適切な NVIDIA ドライバーがインストールされている必要があります。インスタンスタイプにより、パブリック NVIDIA ドライバー、または AWS カスタマーのみが使用できる Amazon S3 のドライバーをダウンロードするか、プリインストールされているドライバーで AMI を使用できます。

AMD GPU がアタッチされたインスタンス (G4ad インスタンスなど) に AMD ドライバーをインストールするには、代わりに「Linux インスタンスに AMD ドライバーをインストールする」を参照してください。

NVIDIA ドライバーの種類

GPU ベースのインスタンスで使用できる主な種類の NVIDIA ドライバーを次に示します。

Tesla ドライバー

これらのドライバーは主に、機械学習用の並列浮動小数点計算、ハイパフォーマンスコンピューティングアプリケーション用の高速フーリエ変換などの計算タスクに GPU を使用するコンピューティングワークロードを対象としています。

GRID ドライバー

これらのドライバーは、3D モデルや高解像度動画などのコンテンツをレンダリングするプロフェッショナルな視覚化アプリケーションに最適なパフォーマンスを提供することが認定されています。GRID ドライバーを構成すると、2 つのモードをサポートできます。Quadro Virtual Workstation は、GPU あたり 4 台の 4K ディスプレイへのアクセスを提供します。GRID vApps は、RDSH アプリのホスティング機能を提供します。

ゲームドライバー

これらのドライバーはゲーム用に最適化されており、パフォーマンスを向上させるために頻繁に更新されます。これらは GPU あたり単一の 4K ディスプレイをサポートします。

NVIDIA コントロールパネル

NVIDIA コントロールパネルは、GRID およびゲームドライバーでサポートされています。Tesla ドライバーではサポートされていません。

Tesla、GRID、およびゲームとライバーに対してサポートされている API

  • OpenCL、OpenGL、Vulkan

  • NVIDIA CUDA および関連ライブラリ (cuDNN、TensorRT、nvJPEG、cuBLAS など)

  • 動画エンコード用の NVENC と動画デコード用の NVDEC

インスタンスタイプ別の使用可能なドライバー

次の表は、GPU インスタンスタイプごとにサポートされている NVIDIA ドライバーをまとめたものです。

インスタンスタイプ Tesla ドライバー GRID ドライバー ゲームドライバー
G2 いいえ はい いいえ
G3 あり はい いいえ
G4dn はい はい あり
P2 はい いいえ いいえ
P3 はい はい † いいえ

† Marketplace AMI のみを使用

インストールオプション

次のいずれかのオプションを使用して、GPU インスタンスに必要な NVIDIA ドライバーを取得します。

オプション 1: NVIDIA ドライバーがインストールされた AMI

AWS と NVIDIA では、NVIDIA ドライバーがインストールされた、それぞれ異なる Amazon マシンイメージ (AMI) を提供しています。

これらの AMI のいずれかを使用してインストールされたドライバーのバージョンを更新するには、バージョンの競合を避けるために、インスタンスから NVIDIA パッケージをアンインストールする必要があります。次のコマンドを使用して、NVIDIA パッケージをアンインストールします。

[ec2-user ~]$ sudo yum erase nvidia cuda

CUDA ツールキットパッケージは、NVIDIA ドライバーに依存します。NVIDIA パッケージをアンインストールすると、CUDA ツールキットが消去されます。NVIDIA ドライバーをインストールした後に、CUDA ツールキットを再インストールする必要があります。

オプション 2: パブリック NVIDIA ドライバー

AWS が提供するオプションには、ドライバーに必要なライセンスが付属しています。または、パブリックドライバーをインストールし、自分のライセンスを使用することもできます。パブリックドライバーをインストールするには、ここで説明するように NVIDIA サイトからドライバーをダウンロードします。

または、パブリックドライバーの代わりに AWS が提供するオプションを使用することもできます。P3 インスタンスで GRID ドライバーを使用するには、オプション 1 の説明に従って AWS Marketplace AMI を使用します。G3 インスタンスまたは G4dn インスタンスで GRID ドライバーを使用するには、オプション 1 の説明に従って AWS Marketplace AMI を使用するか、オプション 3 の説明に従って AWS が提供する NVIDIA ドライバーをインストールします。

パブリック NVIDIA ドライバーをダウンロードするには

Linux インスタンスにログオンし、http://www.nvidia.com/Download/Find.aspx から、使用するインスタンスタイプに適した 64 ビット NVIDIA ドライバーをダウンロードします。[製品タイプ]、[製品シリーズ]、[製品] の順にクリックし、次の表に示すオプションを使用します。

インスタンス 製品タイプ 製品シリーズ 製品
G2 GRID GRID シリーズ GRID K520
G3 Tesla M-Class M60
G4dn † Tesla T シリーズ T4
P2 Tesla K シリーズ K80
P3 Tesla V シリーズ V100

† G4dn インスタンスは、ドライバーバージョン 418.87 以降が必要です。

Linux で NVIDIA ドライバーをインストールするには

ドライバーのインストールと設定の詳細については、NVIDIA Driver Installation Quickstart Guide を参照してください。

オプション 3: GRID ドライバー (G3 および G4dn インスタンス)

これらのダウンロードは、AWS カスタマーのみが利用できます。ダウンロードすることで、ダウンロードしたソフトウェアは、NVIDIA Tesla T4 または NVIDIA Tesla M60 ハードウェアで、AMI の開発目的のみに使用することに同意したことになります。このソフトウェアをインストールすることは、NVIDIA GRID Cloud End User License Agreement の規約の遵守に同意したものと見なされます。

前提条件

  • Linux インスタンスに AWS CLI をインストールし、デフォルトの認証情報を設定します。詳細については、AWS Command Line Interface ユーザーガイドの「AWS CLI のインストール」を参照してください。

  • IAM ユーザーは、AmazonS3ReadOnlyAccess ポリシーによって付与されたアクセス許可を持っている必要があります。

Linux インスタンスに NVIDIA GRID ドライバーをインストールするには

  1. Linux インスタンスに接続します。gcc および make をインストールします (まだインストールされていない場合)。

  2. パッケージのキャッシュを更新し、インスタンスのためにパッケージを更新します。

    • Amazon Linux、CentOS、Red Hat Enterprise Linux の場合:

      [ec2-user ~]$ sudo yum update -y
    • Ubuntu と Debian の場合:

      $ sudo apt-get update -y
  3. (linux-aws パッケージの Ubuntu 16.04 以降) linux-aws パッケージをアップグレードして、最新バージョンを取得します。

    $ sudo apt-get upgrade -y linux-aws
  4. インスタンスを再起動して、最新のカーネルバージョンを読み込みます。

    [ec2-user ~]$ sudo reboot
  5. 再起動後にインスタンスに再接続します。

  6. 現在実行しているカーネルのバージョン用の gcc コンパイラおよびカーネルヘッダーパッケージをインストールします。

    • Amazon Linux、CentOS、Red Hat Enterprise Linux の場合:

      [ec2-user ~]$ sudo yum install -y gcc kernel-devel-$(uname -r)
    • Ubuntu と Debian の場合:

      $ sudo apt-get install -y gcc make linux-headers-$(uname -r)
  7. [CentOS、Red Hat Enterprise Linux、Ubuntu、Debian] NVIDIAグラフィックカード用の nouveau オープンソースドライバーを無効にします。

    1. nouveau ブラックリストファイルに /etc/modprobe.d/blacklist.conf を追加します。次のコードブロックをコピーして、ターミナルに貼り付けます。

      [ec2-user ~]$ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv EOF
    2. /etc/default/grub ファイルを編集して、次の行を追加します。

      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
    3. Grub 設定を再構築します。

      • CentOS と Red Hat Enterprise Linux の場合:

        [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      • Ubuntu と Debian の場合:

        $ sudo update-grub
  8. 次のコマンドを使用して、GRID ドライバーインストールユーティリティをダウンロードします。

    [ec2-user ~]$ aws s3 cp --recursive s3://ec2-linux-nvidia-drivers/latest/ .

    GRID ドライバーの複数のバージョンがこのバケットに保存されます。使用可能なバージョンをすべて表示するには、次のコマンドを使用します。

    [ec2-user ~]$ aws s3 ls --recursive s3://ec2-linux-nvidia-drivers/

    GRID バージョン 11.0 以降、G3 インスタンスと G4dn インスタンスの両方で latest のドライバーパッケージを使用できます。11.0 より後のバージョンは g4/latest に追加されませんが、バージョン 11.0 および G4dn に固有の以前のバージョンは g4/latest に保持されます。

  9. 次のコマンドを使用して、ドライバーのインストールを実行するアクセス権限を追加します。

    [ec2-user ~]$ chmod +x NVIDIA-Linux-x86_64*.run
  10. 次のようにセルフインストールスクリプトを実行して、ダウンロードした GRID ドライバーをインストールします。次に例を示します。

    [ec2-user ~]$ sudo /bin/sh ./NVIDIA-Linux-x86_64*.run

    プロンプトが表示されたら、ライセンス契約を受諾し、必要に応じてインストールオプションを指定します (デフォルトのオプションを使用できます)。

  11. インスタンスを再起動します。

    [ec2-user ~]$ sudo reboot
  12. ドライバーが機能していることを確認します。次のコマンドのレスポンスに、インストールされた NVIDIA ドライバーバージョンおよび GPU に関する詳細が表示されます。

    [ec2-user ~]$ nvidia-smi -q | head
  13. (オプション) ユースケースによっては、以下のオプションのステップを実行できます。この機能が必要ない場合は、以下のステップを実行しないでください。

    1. 最大 4K の解像度のディスプレイを 4 台活用するには、高性能ディスプレイプロトコル NICE DCV を設定します。

    2. NVIDIA Quadro 仮想ワークステーションモードはデフォルトで有効になっています。RDSH アプリケーションホスティング機能用に GRID 仮想アプリケーションをアクティブ化するには、「NVIDIA GRID 仮想アプリケーションの有効化」の GRID 仮想アプリケーションのアクティブ化手順を完了します。

オプション 4: NVIDIA ゲームドライバー (G4dn インスタンス)

これらのドライバーは、AWS カスタマーのみが利用できます。これらをダウンロードすることで、ダウンロードしたソフトウェアは、NVIDIA Tesla T4 ハードウェアで、AMI の開発目的のみに使用することに同意したことになります。このソフトウェアをインストールすることは、NVIDIA GRID Cloud End User License Agreement の規約の遵守に同意したものと見なされます。

前提条件

  • Linux インスタンスに AWS CLI をインストールし、デフォルトの認証情報を設定します。詳細については、AWS Command Line Interface ユーザーガイドの「AWS CLI のインストール」を参照してください。

  • IAM ユーザーは、AmazonS3ReadOnlyAccess ポリシーによって付与されたアクセス許可を持っている必要があります。

Linux インスタンスに NVIDIA ゲームドライバーをインストールするには

  1. Linux インスタンスに接続します。gcc および make をインストールします (まだインストールされていない場合)。

  2. パッケージのキャッシュを更新し、インスタンスのためにパッケージを更新します。

    • Amazon Linux、CentOS、Red Hat Enterprise Linux の場合:

      [ec2-user ~]$ sudo yum update -y
    • Ubuntu と Debian の場合:

      $ sudo apt-get update -y
  3. (linux-aws パッケージの Ubuntu 16.04 以降) linux-aws パッケージをアップグレードして、最新バージョンを取得します。

    $ sudo apt-get upgrade -y linux-aws
  4. インスタンスを再起動して、最新のカーネルバージョンを読み込みます。

    [ec2-user ~]$ sudo reboot
  5. 再起動後にインスタンスに再接続します。

  6. 現在実行しているカーネルのバージョン用の gcc コンパイラおよびカーネルヘッダーパッケージをインストールします。

    • Amazon Linux、CentOS、Red Hat Enterprise Linux の場合:

      [ec2-user ~]$ sudo yum install -y gcc kernel-devel-$(uname -r)
    • Ubuntu と Debian の場合:

      $ sudo apt-get install -y gcc make linux-headers-$(uname -r)
  7. [CentOS、Red Hat Enterprise Linux、Ubuntu、Debian] NVIDIAグラフィックカード用の nouveau オープンソースドライバーを無効にします。

    1. nouveau ブラックリストファイルに /etc/modprobe.d/blacklist.conf を追加します。次のコードブロックをコピーして、ターミナルに貼り付けます。

      [ec2-user ~]$ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv EOF
    2. /etc/default/grub ファイルを編集して、次の行を追加します。

      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
    3. Grub 設定を再構築します。

      • CentOS と Red Hat Enterprise Linux の場合:

        [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      • Ubuntu と Debian の場合:

        $ sudo update-grub
  8. 次のコマンドを使用して、ゲームドライバーインストールユーティリティをダウンロードします。

    [ec2-user ~]$ aws s3 cp --recursive s3://nvidia-gaming/linux/latest/ .

    ゲームドライバーの複数のバージョンがこのバケットに保存されます。使用可能なバージョンをすべて表示するには、次のコマンドを使用します。

    [ec2-user ~]$ aws s3 ls --recursive s3://nvidia-gaming/linux/
  9. 次のコマンドを使用して、ドライバーのインストールを実行するアクセス権限を追加します。

    [ec2-user ~]$ chmod +x NVIDIA-Linux-x86_64*.run
  10. 次のコマンドを使用してインストーラを実行します。

    [ec2-user ~]$ sudo ./NVIDIA-Linux-x86_64*.run

    プロンプトが表示されたら、ライセンス契約を受諾し、必要に応じてインストールオプションを指定します (デフォルトのオプションを使用できます)。

  11. 次のコマンドを使用して必要な設定ファイルを作成します。

    [ec2-user ~]$ cat << EOF | sudo tee -a /etc/nvidia/gridd.conf vGamingMarketplace=2 EOF
  12. 次のコマンドを使用して認証ファイルをダウンロードし、名前を変更します。

    • バージョン 460.39 以降:

      [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCertLinux_2021_10_2.cert"
    • バージョン 440.68 から 445.48:

      [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2020_04.cert"
    • それより前のバージョン:

      [ec2-user ~]$ sudo curl -o /etc/nvidia/GridSwCert.txt "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCert-Linux_2019_09.cert"
  13. インスタンスを再起動します。

    [ec2-user ~]$ sudo reboot
  14. (オプション) 最大 4K 解像度の 1 台のディスプレイを活用するには、高性能ディスプレイプロトコル、NICE DCV を設定します。この機能が必要ない場合は、このステップを実行しないでください。

CUDA の追加バージョンのインストール

インスタンスに NVIDIA グラフィックスドライバーをインストールした後、グラフィックスドライバーにバンドルされているバージョン以外の CUDA をインストールできます。以下の手順では、インスタンスで CUDA の複数のバージョンを設定する方法を示しています。

CUDA ツールキットをインストールするには

  1. Linux インスタンスに接続します。

  2. NVIDIA ウェブサイトを開き、必要な CUDA のバージョンを選択します。

  3. インスタンスのオペレーティングシステムのアーキテクチャ、ディストリビューション、バージョンを選択します。[Installer Type (インストーラタイプ)] で、[runfile (local) (runfile (ローカル))] を選択します。

  4. 手順に従ってインストールスクリプトをダウンロードします。

  5. 以下のコマンドを使用してダウンロードしたインストールスクリプトに対する実行アクセス許可を追加します。

    [ec2-user ~]$ chmod +x downloaded_installer_file
  6. 以下のようにインストールスクリプトを実行して、CUDA ツールキットをインストールし、CUDA のバージョン番号をツールキットのパスに追加します。

    [ec2-user ~]$ sudo downloaded_installer_file --silent --override --toolkit --samples --toolkitpath=/usr/local/cuda-version --samplespath=/usr/local/cuda --no-opengl-lib
  7. (オプション) CUDA のデフォルトバージョンを以下のように設定します。

    [ec2-user ~]$ ln -s /usr/local/cuda-version /usr/local/cuda