NVSwitch GPU サーバーの cuda ドライバー バージョンのインストール、nvidia-docker ガイド

1.Cudaドライバーをインストールする

著者が以前に書いた記事を参照してください: GPU サーバーの cuda ドライバー バージョンのアップグレードに関するガイド

以下のエラーが発生した場合は、gcc と kernel-devel をインストールする必要がありますので、以下の 2 番目の手順を参照して gcc と kernel-devel をインストールしてください。
ここに画像の説明を挿入

次に、gcc、kernel-devel をインストールします。

1. gcc と kernel-devel をインストールします

次のコマンドを直接実行してインストールする場合、デフォルトのバージョンに一貫性がない場合、次のようなエラーが発生します。

yum -y install gcc kernel-devel
./NVIDIA-Linux-x86_64-515.86.01.run

ここに画像の説明を挿入

2. エラーの理由

次のコマンドを使用して、カーネルのバージョンが一貫しているかどうかを確認します。

uname -r
rpm -q kernel-devel

通常の結果は次の図のようになります。カーネルのバージョンは一貫しています。一貫していない場合は、次のステップに進んでこの問題を解決します。
ここに画像の説明を挿入

3. カーネルのバージョンが一致しない問題を解決する

kernel-devel をアンインストールするには、次のコマンドを実行します。

yum remove kernel-devel
4. バージョンに一致する kernel-devel をインストールします
1) カーネルのバージョン番号を表示する
uname -a

丸で囲まれた赤いボックスはカーネルのバージョン番号です:
ここに画像の説明を挿入
kernel-devel-3.10.0-1160.el7.x86_64.rpm

2) kernel-devel に一致するバージョンをダウンロードします。

Kernel-devel のダウンロード アドレス: https://ftp.sjtu.edu.cn/sites/ftp.scientificlinux.org/linux/scientific/7.9/x86_64/os/Packages/
カーネルのバージョン番号に対応する kernel-devel のバージョンを見つけます。 :kernel-devel-3.10.0-1160.el7.x86_64.rpm

# 在终端 使用 wget 下载 kernel-devel 
wget https://ftp.sjtu.edu.cn/sites/ftp.scientificlinux.org/linux/scientific/7.9/x86_64/os/Packages/kernel-devel-3.10.0-1160.el7.x86_64.rpm
2) kernel-devel をインストールする
rpm -ivh kernel-devel-3.10.0-1160.el7.x86_64.rpm
3) カーネル開発環境パッケージ kernel-devel が正常にインストールされているかどうかを確認します。
uname -a ; rpm -qa kernel\* | sort

インストールが成功すると、以下のようになります。
ここに画像の説明を挿入

3 つ、gcc と g++

yum install gcc
yum install gcc-c++

4番目に、Cudaドライバーをインストールします

./NVIDIA-Linux-x86_64-515.86.01.run

5. NVIDIA-Fabric Manager ソフトウェア パッケージをインストールします。

NVIDIA NVSwitch A100 GPU カードの場合、NVSwitch を介してGPUカードを相互接続できるように、ドライバーのバージョンに対応するnvidia-fabricmanager サービスを追加でインストールする必要があります。NVIDIA GPU ドライバーのみがインストールされている場合、GPU は正常に使用できません。

1. nvidia-fabricmanager を詳細にインストールします

nvidia-fabricmanager のインストールの詳細は次のとおりです: https://www.volcengine.com/docs/6419/73634

GPU クラウド サーバー -> ユーザー ガイド -> NVIDIA ドライバーのインストール -> NVIDIA ファブリック マネージャー ソフトウェア パッケージのインストール

2. nvidia-fabricmanager のインストール手順を整理する
1) システムドライバーのバージョンを確認する
nvidia-smi

ここに画像の説明を挿入

2) インストールパッケージを介してインストールする
  • CentOS 8.x
wget https://developer.download.nvidia.cn/compute/cuda/repos/rhel8/x86_64/nvidia-fabric-manager-470.57.02-1.x86_64.rpm
rpm -ivh nvidia-fabric-manager-470.57.02-1.x86_64.rpm
  • CentOS 7.x
wget https://developer.download.nvidia.cn/compute/cuda/repos/rhel7/x86_64/nvidia-fabric-manager-470.57.02-1.x86_64.rpm
rpm -ivh nvidia-fabric-manager-470.57.02-1.x86_64.rpm
  • Ubuntu 20.04
wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/nvidia-fabricmanager-470_470.57.02-1_amd64.deb
dpkg -i nvidia-fabricmanager-470_470.57.02-1_amd64.deb
  • Ubuntu 18.04
wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu1804/x86_64/nvidia-fabricmanager-470_470.57.02-1_amd64.deb
dpkg -i nvidia-fabricmanager-470_470.57.02-1_amd64.deb
  • デバイン10、veLinux 1.0
wget https://developer.download.nvidia.cn/compute/cuda/repos/debian10/x86_64/nvidia-fabricmanager-470_470.57.02-1_amd64.deb
dpkg -i nvidia-fabricmanager-470_470.57.02-1_amd64.deb
3) ソースからインストールする
  • CentOS 8.x
dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo
dnf module enable -y nvidia-driver:470
dnf install -y nvidia-fabric-manager-0:470.57.02-1
  • CentOS 7.x
yum -y install yum-utils 
yum-config-manager --add-repo https://developer.download.nvidia.cn/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
yum install -y nvidia-fabric-manager-470.57.02-1
  • Ubuntu 20.04
wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
apt-key add 7fa2af80.pub
rm 7fa2af80.pub
echo "deb http://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2004/x86_64 /" | tee /etc/apt/sources.list.d/cuda.list
apt-get update
apt-get -y install nvidia-fabricmanager-470=470.57.02-1
  • Ubuntu 18.04
wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
apt-key add 7fa2af80.pub
rm 7fa2af80.pub
echo "deb http://developer.download.nvidia.cn/compute/cuda/repos/ubuntu1804/x86_64 /" | tee /etc/apt/sources.list.d/cuda.list
apt-get update
apt-get -y install nvidia-fabricmanager-470=470.57.02-1
4) NVIDIA-ファブリックマネージャーを起動します
# 1. 执行以下命令启动Fabric Manager服务。
sudo systemctl start nvidia-fabricmanager

# 2. 执行以下命令查看Fabric Manager服务是否正常启动,回显active(running)表示启动成功。
sudo systemctl status nvidia-fabricmanager

# 3. 执行以下命令配置Fabric Manager服务随实例开机自启动。
sudo systemctl enable nvidia-fabricmanager

6、nvidia-dockerをインストールする

1、nvidia-dockerを詳しくインストールする

nvidia-docker のインストールの詳細な説明: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker

2、nvidia-dockerの要約とインストール
1) Ubuntu および Debian にインストールする

次の手順を使用して、Ubuntu LTS (18.04、20.04、および 22.04) および Debian (Stretch、Buster) ディストリビューションで
NVIDIA Container Toolkitをセットアップできます。

  • Docker-CEのセットアップ
curl https://get.docker.com | sh && sudo systemctl --now enable docker
  • パッケージ リポジトリと GPG キーを設定します。
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

実験的な機能やリリース候補にアクセスするには、リポジトリのリストに実験的なブランチを追加する必要がある場合があります。

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container.list | \
         sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
         sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
  • nvidia-docker2 パッケージリストを更新した後にパッケージ (および依存関係) をインストールします
sudo apt-get update
sudo apt-get install -y nvidia-docker2
  • デフォルトのランタイムを設定した後、Docker デーモンを再起動してインストールを完了します。
sudo systemctl restart docker
  • この時点で、基本的な CUDA コンテナを実行することで、動作するセットアップをテストできます。
sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
  • これにより、次のようなコンソール出力が生成されるはずです。
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.06    Driver Version: 450.51.06    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| 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:1E.0 Off |                    0 |
| N/A   34C    P8     9W /  70W |      0MiB / 15109MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
2) CentOS 7/8にインストール

次の手順を使用して、CentOS 7/8 で NVIDIA Container Toolkit をセットアップできます。

  • 公式の Docker CE リポジトリをセットアップします。

    • CentOS 8.x
    sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
    
    • CentOS 7.x
    sudo yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
    
  • これで、docker-ce リポジトリで利用可能なパッケージを確認できるようになりました。

    • CentOS 8.x
    sudo dnf repolist -v
    
    • CentOS 7.x
    sudo yum repolist -v
    

CentOS は、新しいバージョンの Docker-CE
に必要な特定のバージョンのパッケージcontainerd.ioをサポートしていないため、1つのオプションは、パッケージcontainerd.ioを手動でインストールしてから、docker-ceパッケージのインストールに進むことです。

  • containerd.io パッケージをインストールします。

    • CentOS 8.x
    sudo dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el7.x86_64.rpm
    
    • CentOS 7.x
    sudo yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el7.x86_64.rpm
    
  • 次に、最新の docker-ce パッケージをインストールします。

    • CentOS 8.x
    sudo dnf install docker-ce -y
    
    • CentOS 7.x
    sudo yum install docker-ce -y
    
  • 次のコマンドを使用して、Docker サービスが実行されていることを確認します。

    sudo systemctl --now enable docker
    
  • 最後に、hello-world コンテナーを実行して、Docker インストールをテストします。

    sudo docker run --rm hello-world
    
  • これにより、次のようなコンソール出力が生成されるはずです。

    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    0e03bdcc26d7: Pull complete
    Digest: sha256:7f0a9f93b4aa3022c3a4c147a449bf11e0941a1fd0bf4a8e6c9408b2600777c5
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    To generate this message, Docker took the following steps:
    1. The Docker client contacted the Docker daemon.
    2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
       (amd64)
    3. The Docker daemon created a new container from that image which runs the
       executable that produces the output you are currently reading.
    4. The Docker daemon streamed that output to the Docker client, which sent it
       to your terminal.
    
    To try something more ambitious, you can run an Ubuntu container with:
    docker run -it ubuntu bash
    
    Share images, automate workflows, and more with a free Docker ID:
    https://hub.docker.com/
    
    For more examples and ideas, visit:
    https://docs.docker.com/get-started/
    
  • リポジトリと GPG キーを設定します。

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
       && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
    
  • 実験的な機能やリリース候補にアクセスするには、リポジトリのリストに実験的なブランチを追加する必要がある場合があります。

    yum-config-manager --enable libnvidia-container-experimental
    
  • nvidia-docker2 がパッケージ リストを更新した後、パッケージ (および依存関係) をインストールします。

    • CentOS 8.x
    sudo dnf clean expire-cache --refresh
    
    • CentOS 7.x
    sudo yum clean expire-cache
    
    • CentOS 8.x
    sudo dnf install -y nvidia-docker2
    
    • CentOS 7.x
    sudo yum install -y nvidia-docker2
    
  • デフォルトのランタイムを設定した後、Docker デーモンを再起動してインストールを完了します。

    sudo systemctl restart docker
    
  • この時点で、基本的な CUDA コンテナを実行することで、動作するセットアップをテストできます。

    sudo docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
    
  • これにより、次のようなコンソール出力が生成されるはずです。

    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 450.51.06    Driver Version: 450.51.06    CUDA Version: 11.0     |
    |-------------------------------+----------------------+----------------------+
    | 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:1E.0 Off |                    0 |
    | N/A   34C    P8     9W /  70W |      0MiB / 15109MiB |      0%      Default |
    |                               |                      |                  N/A |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

おすすめ

転載: blog.csdn.net/TFATS/article/details/128249249