DockerをWindows環境に導入します。
Dockerとは実行環境「コンテナ」を管理できるツールです。
- やりたいこと
- CUDA12.4系環境を構築したい(Windows PCへのダイレクト・インストールを避けたい)
目次
Docker自体のインストール
- 公式サイトからWindows向けインストーラーをダウンロードしてインストールします。
- Dockerアカウントが無い場合は公式サイト上で作成します。
アカウント作成はインストーラーのダウンロードとインストールの間にやってしまえば良さそう。
おそらく再起動が必要になるので、PC再起動する。
Dockerを試す
コマンドプロンプト(ターミナル)を起動する。
キーボードのWindowsキー+Rで出てきた窓で、cmd を入力して実行。

コマンドプロンプトで以下を入力し、実行。
ネットワークアクセスを許可するかどうか聞かれる場合は、プライベートネットワークだけ許可するだけで良い。
docker run -d -p 8080:80 docker/welcome-to-docker
色々インスト―ルされ、完了したところでブラウザから localhost:8080 にアクセス。
自分のローカル環境の8080番ポートにアクセスするという意味。

NVIDIAドライバーを更新
CUDAをインストールする必要はないが、ドライバーは必要
自分のPCのGPUなどを選択し、適切なドライバーをダウンロードしてインストールする。
winget で ランタイムをインストール
wingetというWindowsのパッケージ管理ツールを利用して、NVIDIAのコンテナ向けランタイム(実行制御プログラム)をインストールします。
winget install NVIDIA.Container.Runtime
Docker Desktopの設定を書き換える

builderは元々あった記述。そこにruntimesを追記する。デフォルトランタイムもnvidiaに設定。
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"runtimes":{
"nvidia":{
"path":"nvidia-container-runtime",
"runtimeArgs":[]
}
},
"default-runtime":"nvidia",
"experimental": false
}
コンテナを起動して確認
Docker Hubで 12.4系のコンテナを探す。
https://hub.docker.com/r/nvidia/cuda/tags?name=12.4.1-devel-ubuntu22.04
baseでなく、develを使う。(baseにはnvcc入ってない?)
docker pull nvidia/cuda:12.4.1-devel-ubuntu22.04
確認
docker run --rm --gpus all nvidia/cuda:12.4.1-devel-ubuntu22.04 bash -c "nvcc --version"
結果
Dockerでnvccを使ってCUDAを確認できました。

※本来であれば WindowsでLiunuxを使うWSLを使うのが正道だと思われます。