GPUのセットアップ
ここでは、GPUのセットアップに必要な手順を詳細に解説します。具体的には、古いドライバやツールキットのアンインストール、NVIDIAドライバのインストール、CUDAツールキット、cuDNN、NVIDIA Container Toolkitの設定、およびDockerの構成方法について取り扱います。
環境の確認
まずは、環境変数類の確認をおこないます。
➜ nvidia-smi
Mon Aug 26 18:07:28 2024
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.73.08 Driver Version: 516.40 CUDA Version: 11.7 |
|-------------------------------+----------------------+----------------------+
| 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 NVIDIA GeForce ... On | 00000000:3B:00.0 On | N/A |
| 0% 47C P8 12W / 200W | 1259MiB / 8192MiB | 14% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| 0 N/A N/A 27 G /Xwayland N/A |
| 0 N/A N/A 98 G /Xwayland N/A |
+-----------------------------------------------------------------------------+
➜ cat /etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
}⏎
➜ cat /etc/*-release # Check OS distr
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04 LTS"
..
➜ lscpu # Check OS Arch
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
..
# ➜ sudo lshw -C system # Check HW info- WSL2のバージョンを確認します。
# wsl cat /proc/version # Specify the WSL ver.古いドライバやツールキットのアンインストール
過去に導入している場合、古いドライバーを削除します。
Windowsの場合
-
デバイスマネージャーで古いNVIDIAドライバをアンインストール:
Windowsキー + Xを押して「デバイスマネージャー」を開きます。- 「ディスプレイアダプター」を展開し、NVIDIA GPUを右クリックして「デバイスをアンインストール」を選択。
- 古いドライバを完全に削除するため、必要に応じて「デバイスのソフトウェアを削除する」を選択し、「アンインストール」をクリックします。
-
ツールキットやCUDAをアンインストール:
スタートメニューで「アプリと機能」を検索。- NVIDIAに関連するCUDAやツールキットがインストールされている場合は、ここで選択して「アンインストール」を行います。
Linuxの場合
-
古いドライバの確認:
- 以下のコマンドで現在インストールされているNVIDIAドライバを確認します。
nvidia-smi - 現在のドライババージョンや状態を確認します。
- 以下のコマンドで現在インストールされているNVIDIAドライバを確認します。
-
ドライバやCUDAツールキットをアンインストール:
- 既存のCUDAツールキットやドライバを削除するため、次のコマンドを使用します。
# To uninstall cuda ( adjust X.Y to your env ) sudo /usr/local/cuda-X.Y/bin/cuda-uninstaller # To uninstall nvidia sudo /usr/bin/nvidia-uninstall # If you install via package manager sudo apt --purge remove <package_name> ## For CUDA 11.3 and earlier sudo apt-get --purge remove "*nvidia*" sudo apt-get --purge remove "*cublas*" "cuda*" "nsight*" # --- # To remove CUDA Toolkit: sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*" # To remove NVIDIA Drivers: sudo apt-get --purge remove "*nvidia*" "libxnvctrl*" # If you've install via source files sudo rm -rf /usr/local/cuda* # If you cleanup totally sudo rm /etc/apt/sources.list.d/cuda* sudo apt-get autoremove && sudo apt-get autoclean sudo apt autoremove
Ref.:
NVIDIA Driversのインストール
次に、最新のNVIDIAドライバをインストールします。以下の手順で、適切なドライバをダウンロードしてインストールします。
ドライバのダウンロード
-
公式NVIDIAドライバ検索ページにアクセス:
-
適切なドライバを検索:
- 使用するGPUモデルに応じたドライバを選択します。例えば、デスクトップ用のGeForce GTX 1080であれば、対応するオペレーティングシステム(Windows、Linuxなど)も選択して、検索結果から最新のドライバを選択します。
-
ドライバをダウンロード:
- ダウンロードページから実行ファイル(例:
.exeファイルや.runファイル)をダウンロードします。
- ダウンロードページから実行ファイル(例:
ドライバのインストール
Windowsの場合
- ダウンロードした実行ファイルを実行します。
- インストールウィザードに従い、「カスタムインストール」を選択して、「クリーンインストール」 オプションを有効にします。
- インストールが完了したら、PCを再起動します。
Linuxの場合
-
ダウンロードした
.runファイルを実行可能にするため、以下のコマンドを使用します。chmod +x NVIDIA-Linux-x86_64-<version>.run -
実行ファイルを以下のコマンドで実行します。
sudo ./NVIDIA-Linux-x86_64-<version>.run -
指示に従ってインストールを完了します。
-
インストール後にシステムを再起動し、
nvidia-smiコマンドを使ってドライバが正しくインストールされていることを確認します。nvidia-smi
CUDA Toolkitのインストール
CUDA(Compute Unified Device Architecture)は、NVIDIAによって提供される並列計算プラットフォームです。これをインストールすることで、TensorFlowやPyTorchなどの深層学習フレームワークでGPUの能力を活用できます。
CUDA Toolkitのダウンロード
-
CUDA Toolkitの公式ページにアクセス:
- CUDA Toolkit Archive から、使用するGPUに対応したバージョンを選びます。
-
適切なバージョンを選択:
- 最新の安定版か、使用するアプリケーションがサポートしているバージョンをダウンロードします。
CUDA Toolkitのインストール
Windowsの場合
- ダウンロードしたインストーラを実行します。
- インストールウィザードに従ってCUDA Toolkitをインストールします。
- 環境変数に
CUDA_PATHが追加されていることを確認します。
Linuxの場合
-
.debパッケージを使用してインストールする場合:cat /var/log/cuda-installer.log wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get -y install cuda-toolkit-12-6 sudo apt-get install -y nvidia-open -
.runファイルを使用する場合:# sudo apt update # sudo apt upgrade -y # sudo apt install cuda-toolkit # sudo apt install nvidia-gds # sudo reboot # Install Driver wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_560.28.03_linux.run # Install CUDA Driver sudo sh cuda_12.6.0_560.28.03_linux.run sudo sh cuda_12.6.0_560.28.03_linux.run --silent --driver ## Add filepath cat /etc/ld.so.conf.d/cuda-12-6.conf sudo echo -e "\n/usr/local/cuda-12.6/lib64\n" > /etc/ld.so.conf.d/cuda-12-6.conf ## Or set PATH ( e.g. add to ~/.config/fish/config.fish ) set -gx CUDA_HOME /usr/local/cuda-12.6 set -gx PATH $PATH:$CUDA_HOME/bin set -gx LD_LIBRARY_PATH $CUDA_HOME/lib64 # Check PATH echo $PATH | tr ' ' '\n' | grep cuda echo $LD_LIBRARY_PATH | tr ' ' '\n' | grep cudaスクリプトを実行後、数分後、次のような案内が表示される。 それぞれ適切な値を入力する。
┌──────────────────────────────────────────────────────────────────────────────┐ │ End User License Agreement │ │ -------------------------- │ │ │ │ NVIDIA Software License Agreement and CUDA Supplement to │ │ Software License Agreement. │ │ │ │ The CUDA Toolkit End User License Agreement applies to the │ │ NVIDIA CUDA Toolkit, the NVIDIA CUDA Samples, the NVIDIA │ │ Display Driver, NVIDIA Nsight tools (Visual Studio Edition), │ │ and the associated documentation on CUDA APIs, programming │ │ model and development tools. If you do not agree with the │ │ terms and conditions of the license agreement, then do not │ │ download or use the software. │ │ │ │ Last updated: January 12, 2024. │ │ │ │ │ │ Preface │ │ ------- │ │ │ │──────────────────────────────────────────────────────────────────────────────│ │ Do you accept the above EULA? (accept/decline/quit): │ │ accept │ └──────────────────────────────────────────────────────────────────────────────┘導入するソフトウェアの選択
┌──────────────────────────────────────────────────────────────────────────────┐ │ CUDA Installer │ │ + [X] CUDA Toolkit 12.6 │ │ [X] CUDA Demo Suite 12.6 │ │ [X] CUDA Documentation 12.6 │ │ - [ ] Kernel Objects │ │ [ ] nvidia-fs │ │ Options │ │ Install │ │ │ ~ │ Up/Down: Move | Left/Right: Expand | 'Enter': Select | 'A': Advanced options │ └──────────────────────────────────────────────────────────────────────────────┘シンボリックリンクがある場合の表示
┌──────────────────────────────────────────────────────────────────────────────┐ │ A symlink already exists at /usr/local/cuda. Update to this installation? │ │ Yes │ │ No │ │ │ ~ │ Up/Down: Move | 'Enter': Select │ └──────────────────────────────────────────────────────────────────────────────┘Toolkitがある場合の表示
┌──────────────────────────────────────────────────────────────────────────────┐ │ Existing installation of CUDA Toolkit 12.6 found: │ │ Upgrade all │ │ Choose components to upgrade │ │ No, abort installation │ │ │ ~ │ Up/Down: Move | 'Enter': Select │ └──────────────────────────────────────────────────────────────────────────────┘数分要するので、待機する。
完了後の表示
┌──────────────────────────────────────────────────────────────────────────────┐ │ Existing installation of CUDA Toolkit 12.6 found: │ │ Upgrade all │ │ Choose components to upgrade │ │ No, abort installation │ │ │ ~ │ Up/Down: Move | 'Enter': Select │ └──────────────────────────────────────────────────────────────────────────────┘失敗した場合等の表示 (詳細はトラブルシューティングガイドを参照)
=========== = Summary = =========== Driver: Not Selected Toolkit: Installed in /usr/local/cuda-12.6/ Please make sure that - PATH includes /usr/local/cuda-12.6/bin - LD_LIBRARY_PATH includes /usr/local/cuda-12.6/lib64, or, add /usr/local/cuda-12.6/lib64 to /etc/ld.so.conf and run ldconfig as root To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-12.6/bin ***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 560.00 is required for CUDA 12.6 functionality to work. To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file: sudo <CudaInstaller>.run --silent --driver Logfile is /var/log/cuda-installer.log
cuDNNのインストール
cuDNN(CUDA Deep Neural Network library)は、NVIDIAによる深層学習フレームワークのためのGPU加速ライブラリです。これにより、TensorFlowやPyTorchでの学習速度が大幅に向上します。
cuDNNのダウンロード
- NVIDIA cuDNNページにアクセス:
- cuDNN Download から使用するCUDAバージョンに対応したcuDNNをダウンロードします。
- NVIDIA Developerアカウントにサインイン:
- cuDNNのダウンロードにはNVIDIA Developerアカウントが必要です。
Ref.:
cuDNNのインストール
Windowsの場合
- ダウンロードしたZIPファイルを解凍します。
bin,include,libフォルダを、CUDA Toolkitのインストール先ディレクトリにコピーします(デフォルトはC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.X)。
Linuxの場合
- ダウンロードした
.tgzファイルを解凍します。tar -xzvf cudnn-<version>-linux-x64-vX.X.X.tgz - 次のコマンドでライブラリをCUDAディレクトリにコピーします。
sudo cp -a cuda/include/* /usr/local/cuda/include/ sudo cp -a cuda/lib64/* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
NVIDIA Container Toolkitのインストール
NVIDIA Container Toolkitを使用すると、Dockerコンテナ内でGPUを使用することができます。これにより、GPUリソースを共有する複数のコンテナを効率的に管理できます。
Dockerのインストール
Dockerをインストールしていない場合は、まずDockerをインストールします。
Windows(WSL)の場合
- Docker Desktopをダウンロード:
- Docker Desktopからダウンロードしてインストールします。
Linuxの場合
- Dockerをインストール:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
NVIDIA Container Toolkitのインストール
Windows(WSL)の場合
- Docker DesktopでGPUサポートを有効化します。
Settings>Resources>WSL Integrationで、使用するWSLディストリビューションに対してEnable GPU supportを有効にします。
Linuxの場合
-
パッケージリポジトリを追加します。
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/stable/deb/nvidia-container-toolkit.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 sudo apt-get update sudo apt-get install -y nvidia-docker2 sudo systemctl restart docker -
DockerがGPUを認識しているか確認します。
docker run --gpus all nvidia/cuda:10.0-base nvidia-smi
Dockerの構成
Dockerコンテナ内でGPUを使用するためには、docker-composeやdocker runコマンドで--gpusオプションを使用して、コンテナにGPUリソースを割り当てます。
設定をはじめるには
sudo nvidia-ctk runtime configure --runtime=dockerDocker Composeの設定例
version: '3.8'
services:
gpu-app:
image: nvidia/cuda:10.0-base
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=allDockerを使用する
再起動させましょう
sudo systemctl restart docker参考
- CUDA on WSL
- CUDA Toolkit 12.1 Downloads
- GPU in Windows Subsystem for Linux (WSL)
- Upgrading to the NVIDIA Container Runtime for Docker :: DGX Systems Documentation
- CUDA Installation Guide for Linux
- How to remove cuda completely from ubuntu?
- CUDA Installation Guide for Linux
- How to remove cuda completely from ubuntu?