はじめに
- Visual Studio Code (以下 VScode)の Dev Containers (以下 devcontainers)を用いて,cuda 環境を構築する方法をまとめる。
解説しないもの
- VScode とは
- devcontainer とは
方法
-
利用する CUDA のバージョンを決める
以下 CUDA 12.1 を利用する。 CUDA と cuDNN のバージョンを合わせないと devcontainers のビルドに失敗する。 まずは,CUDA 12.1 に対応する cuDNN のバージョンを確認する。
CUDA のインストールスクリプトにアクセスし,インストール元のリポジトリを確認する
2023/10/20 時点では,Ubuntu 20.04 のものが利用されていた NVIDIA_REPO_URL="https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64"
このリポジトリにアクセスし,CUDA 12.1 に対応する cuDNN のバージョンを確認する cudnn で cuda12.1 に対応しているものは以下の通りにであった
libcudnn8-dev_8.9.0.131-1+cuda12.1_amd64.deb 429MB 2023-04-06 03:02 libcudnn8-dev_8.9.1.23-1+cuda12.1_amd64.deb 433MB 2023-05-01 18:32 libcudnn8-dev_8.9.2.26-1+cuda12.1_amd64.deb 434MB 2023-05-31 15:59 libcudnn8-dev_8.9.1.23-1+cuda11.8_amd64.deb 434MB 2023-05-01 19:30 libcudnn8-dev_8.9.3.28-1+cuda12.1_amd64.deb 462MB 2023-07-06 16:11
以下 cuDNN8 8.9.3.28 を利用する
-
Dev Container を構築する
F1 キーを押して,以下のコマンドを実行する。
開発コンテナー:開発コンテナー構成ファイルを追加… Dev Containers: Add Dev Container Configuration Files ...
-
ベースの環境を選択する 特にこだわりがなければ Python でよいだろう
Python 3 devcontainers Develop python3 applications.
続いて,Python のバージョンと OS を指定する
環境維持のため,マイナーバージョン(Python 3.10, 3.11 等)まで指定するとよい bookworm や bullseye は Debian のバージョンである
3.11-bullseye 3.11-bookworm 3.10-bookworm
以下 Python3 3.10-bookworm を利用する
※ anaconda が利用したければ,anaconda や miniconda のイメージも存在するが(私の趣味により動作を確認していない)
-
拡張機能を追加する ここが本題である まず,cuda を選択する
NVIDIA CUDA devcontainers install shared libraries for NVIDIA CUDA
オプションを構築し,
installCudnn installCudnnDev installToolkit
を選択する
ここで CUDA のバージョン(12.1)を選択する 続いて,cuDNN のバージョン(8.9.3.28)を選択する
-
構成ファイルを確認する .devcontainer に devcontainers.json というファイルが出力される
// For format details, see https://aka.ms/devcontainer.json. For config options, see the // README at: <https://github.com/devcontainers/templates/tree/main/src/python> { "name": "Python 3", // Or use a Dockerfile or Docker Compose file. More info: <https://containers.dev/guide/dockerfile> "image": "mcr.microsoft.com/devcontainers/python:1-3.10-bookworm", "features": { "ghcr.io/devcontainers/features/nvidia-cuda:1": { "installCudnn": true, "installCudnnDev": true, "installToolkit": true, "cudaVersion": "12.1", "cudnnVersion": "8.9.3.28" } } // Features to add to the dev container. More info: https://containers.dev/features. // "features": {}, // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], // Use 'postCreateCommand' to run commands after the container is created. // "postCreateCommand": "pip3 install --user -r requirements.txt", // Configure tool-specific properties. // "customizations": {}, // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. // "remoteUser": "root" }
cudaVersion と cudnnVersion が設定した値と合っているか確認する。