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 | +-----------------------------------------------------------------------------+