CUDA Docker on Windows

DockerをWindows環境に導入します。
Dockerとは実行環境「コンテナ」を管理できるツールです。

  • やりたいこと
    • CUDA12.4系環境を構築したい(Windows PCへのダイレクト・インストールを避けたい)
目次

Docker自体のインストール

https://www.docker.com/ja-jp

  1. 公式サイトからWindows向けインストーラーをダウンロードしてインストールします。
  2. Dockerアカウントが無い場合は公式サイト上で作成します。
    アカウント作成はインストーラーのダウンロードとインストールの間にやってしまえば良さそう。

おそらく再起動が必要になるので、PC再起動する。

Dockerを試す

コマンドプロンプト(ターミナル)を起動する。

キーボードのWindowsキー+Rで出てきた窓で、cmd を入力して実行。

コマンドプロンプトで以下を入力し、実行。
ネットワークアクセスを許可するかどうか聞かれる場合は、プライベートネットワークだけ許可するだけで良い。

docker run -d -p 8080:80 docker/welcome-to-docker

色々インスト―ルされ、完了したところでブラウザから localhost:8080 にアクセス。
自分のローカル環境の8080番ポートにアクセスするという意味。

NVIDIAドライバーを更新

CUDAをインストールする必要はないが、ドライバーは必要

自分のPCのGPUなどを選択し、適切なドライバーをダウンロードしてインストールする。

NVIDIA
NVIDIA 公式最新ドライバーのダウンロード 最新の NVIDIA 公式ドライバーをダウンロードして、PC ゲーミング体験を向上し、アプリケーションをより速く実行しましょう。

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を使うのが正道だと思われます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次