すべてのプロダクト
Search
ドキュメントセンター

Elastic GPU Service:カーネルの更新時にNVIDIA GPU (Tesla) ドライバーをロードできない場合はどうすればよいですか?

最終更新日:Sep 18, 2024

GPUアクセラレーションインスタンス用にAlibaba Cloud Linux、Red Hat、CentOS、Ubuntuなどのオペレーティングシステムのカーネルを更新すると、カーネルのカーネルアプリケーションバイナリインターフェイス (kABI) が異なる場合があります。 その結果、ソースカーネルに基づいて構築されたTeslaドライバを新しいカーネルにロードすることはできません。 この問題を解決するには、カーネルの更新後にカーネルのカーネルアプリケーションプログラミングインターフェイス (kAPI) が変更されたかどうかに基づいて、さまざまなソリューションを選択します。

問題の説明

GPU高速化インスタンスのオペレーティングシステムカーネルを更新すると、GPU (Tesla) ドライバーを新しいカーネルにロードすることはできません。 つまり、ソースカーネルのNVIDIAカーネルオブジェクト (KO) を新しいカーネルにロードすることはできません。 その結果、ドライバーは期待どおりに仕事をすることができません。 次の図に、サンプルのエラーメッセージを示します。

报错截图.jpg

発生原因

  • 更新前のカーネルのkABIと更新後のカーネルのkABIが異なります。

  • NVIDIA GPU (Tesla) ドライバのデフォルトのKOインストールディレクトリは /lib/modules/(uname-r)/extraではありません。 カーネルパッケージをインストールするためのソフトリンクは作成できません。

ソリューション

上記の原因とカーネルへのkAPIの影響に基づいて、次のいずれかのソリューションを選択します。

DKMSを使用したNVIDIA GPUの自動構築 (テスラ) ドライバー

  1. NVIDIA GPU (Tesla) ドライバにDKMSをインストールします。

    1. GPU高速化インスタンスに接続します。

      この例では、Alibaba Cloud Linux 3オペレーティングシステムを実行するgn7iインスタンスが使用されています。 詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。

    2. GPU高速化インスタンスにDKMSをインストールします。

      sudo yum install dkms
    3. NVIDIA GPU (Tesla) ドライバをインストールします。

      詳細については、「GPUアクセラレーションコンピューティング最適化LinuxインスタンスへのTeslaドライバーの手動インストール」をご参照ください。

      インストール中に、次の項目に注意してください。

      • 次のメッセージが表示され、カーネルモジュールのソースコードをDKMSに登録するかどうかを確認したら、[はい] を選択します。

        DKMS.jpg

      • [はい] を選択すると、次の図に示すように、NVIDIA GPUが登録失敗メッセージを報告する場合があります。 メッセージを無視して [OK] をクリックします。

        DKMS-OK.jpg

      • ビジネス要件に基づいて、32ビットNVIDIA互換ライブラリをインストールするかどうかを決定します。

        兼容32位.jpg

    4. 次のコマンドを実行して、DKMSのステータスを確認します。

      sudo dkms status

      次の図に示すようなコマンド出力が返された場合は, DKMSがインストールされます。

      注册到dkms.jpg

    5. lsコマンドを実行して、NVIDIA GPU (Tesla) ドライバーファイルが /usr/src/nvidia-${NVIDIA driver version} ディレクトリに存在するかどうかを確認します。

      この例では、nvidia-${NVIDIA driver version}nvidia-470.141.03に設定されています。 バージョンを実際のドライバーバージョンに置き換えます。

      目录.jpg

      説明

      デフォルトでは、NVIDIA GPU (Tesla) ドライバーは、関連するコードまたはファイルを /usr/src/nvidia-${NVIDIA driver version} ディレクトリに格納します。 これにより、カーネルの更新後、DKMSはドライバカーネルモジュールを自動的に再コンパイルしてインストールできます。

  2. 新しいカーネルをインストールすると、DKMSが自動的にNVIDIA GPU (Tesla) ドライバーを構築します。

    この例では、カーネルバージョンは5.10.134-15.al8に設定されています。 ビジネス要件に基づいて、バージョンを実際のカーネルバージョンに置き換えます。

    重要

    kernel-develパッケージとkernelまたはkernel-coreパッケージを順番にインストールすることを推奨します。 それ以外の場合、DKMSはNVIDIA GPU (Tesla) ドライバーを自動的にビルドしません。 カーネルまたはカーネルコアパッケージはDKMS操作をトリガーし、NVIDIA GPU (Tesla) ドライバーをビルドするにはカーネル-develパッケージが必要です。 この場合、DKMSを手動でトリガーしてNVIDIA GPU (Tesla) ドライバーをビルドする必要があります。 詳細については、このトピックの「手順3」をご参照ください。

    1. 次のコマンドを実行して、新しいカーネルのkernel-develパッケージをインストールします。

      sudo rpm -ivh kernel-devel-5.10.134-15.al8.x86_64.rpm --force

      kernel-devel.jpg

    2. カーネルまたはカーネルコアパッケージをインストールします。

      この例では、カーネルパッケージがインストールされています。 Alibaba Cloud Linux 3オペレーティングシステムの場合、カーネルコアパッケージをインストールし、sudo rpm -ivh kernel-core-5.10.134-15.al8.x86_64.rpm -- forceコマンドを実行する必要があります。

      sudo rpm -ivh kernel-5.10.134-15.al8.x86_64.rpm --force

      kernel.jpg

    3. 次のコマンドを実行して、新しいカーネル用にNVIDIA GPU (Tesla) ドライバがビルドされているかどうかを確認します。

      find /lib/modules/5.10.134-15.al8.x86_64/ -name *nvidia*

      image

    4. sudo dkms statusコマンドを実行して、DKMS情報に新しいカーネルバージョン番号が含まれているかどうかを確認します。

      image

  3. (条件付きで必要) カーネルまたはカーネルコアパッケージをインストールしてからkernel-develパッケージをインストールする場合は、DKMSを手動でトリガーしてNVIDIA GPU (Tesla) ドライバーをビルドする必要があります。

    1. 次のコマンドを実行して、NVIDIA GPU (Tesla) ドライバーをビルドします。

      sudo dkms build -m nvidia -v ${NVIDIA driver version} -k ${New kernel version} --force

      次のパラメータに注意してください。

      • ${NVIDIA driver version}: バージョンをNVIDIA GPU (Tesla) ドライバーの実際のバージョン番号に置き換えます。 例: 470.141.03

      • ${新しいカーネルバージョン}: バージョンを新しいカーネルの実際のバージョン番号に置き換えます。 例: 5.10.134-15.al8.x86_64

      image

    2. 次のコマンドを実行して、NVIDIA GPU (Tesla) ドライバをインストールします。

      sudo dkms install -m nvidia -v ${NVIDIA driver version} -k ${New kernel version} --force

      image

    3. 次のコマンドを実行して、NVIDIA GPU (Tesla) ドライバが新しいカーネルインストールディレクトリにインストールされているかどうかを確認します。

      find /lib/modules/5.10.134-16.3.al8.x86_64/ -name *nvidia*

      驱动安装.jpg

    4. sudo dkms statusコマンドを実行して、DKMS情報に新しいカーネルバージョン番号が含まれているかどうかを確認します。

      image

NVIDIA GPU (Tesla) ドライバーの再インストール

カーネルの更新後にカーネルのkAPIが変更された場合、DKMSはNVIDIA GPU (Tesla) ドライバーを自動的にビルドまたはインストールできません。 この場合、NVIDIA GPU (Tesla) ドライバを再インストールする必要があります。 詳細については、「GPUアクセラレーションコンピューティング最適化LinuxインスタンスへのTeslaドライバーの手動インストール」をご参照ください。