Windows11 HomeでGPU(Nvidia)のPCがあるのですが、普段はMacしか使わないので、機械学習用のサーバーとして、DockerでCUDA対応のJupyterLabを立ち上げました。
ステップ1: Windows Subsystem for Linux (WSL) の有効化
- スタートメニューを開き、「PowerShell」と入力します。
- 表示された「Windows PowerShell」を右クリックし、「管理者として実行」を選択します。
WSLを有効化
PowerShellが開いたら、以下のコマンドを入力してWSLを有効にします。
wsl --install
実行後、システムはWSLのインストールを開始し、プロセスが完了するとPCを再起動するように求められます。
ステップ2: Ubuntuのインストール
WSLを有効にした後、Ubuntuをインストールしたい場合は、以下のコマンドを実行します。
wsl --install -d Ubuntu
これにより、Ubuntuがインストールされます。他のディストリビューションをインストールしたい場合は、Ubuntu
の部分を希望のディストリビューション名に置き換えてください。
注記
- WSLのインストールと使用にはWindows 10バージョン2004以降、またはWindows 11が必要です。
- 特定のディストリビューションをインストールする際にエラーが発生する場合は、Microsoft Storeを開いて直接インストールすることも可能です。
これで、WSLをPowerShellを使ってコマンドラインからインストールし、Linuxディストリビューションを設定する方法を習得しました。これにより、Windows上で直接Linux環境を利用できるようになり、多くの開発タスクを簡単に実行できるようになります。
ステップ3: Dockerのインストール
Dockerを起動したら、以下のコマンドでUbuntuを起動します。(もしくはスタートメニューから「ubuntu」で起動)
ubuntu
したら、以下のコマンドを使用してDockerをインストールします。
Dockerが正しくインストールされたことを確認します。
sudo docker run hello-world
以下の表示が出たらインストール完了です。
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/
ステップ4: CUDA対応のJupyterLab環境の構築
CUDAを含むDockerイメージを使用して、JupyterLabを起動します。このイメージはNVIDIAから提供されています。
こちらのJupyter環境構築の手順を参考にしました。
docker run --gpus all --rm --name jupyter -p 8888:8888\
-v `pwd`/workspace:/workspace -w /workspace\
nvcr.io/nvidia/pytorch:24.03-py3 \
jupyter-lab --no-browser --port=8888 --ip=0.0.0.0 \
--allow-root --NotebookApp.token=''
もしくはdocker-compose.yamlファイルを以下のように作成します。
version: '3.8'
services:
jupyter:
image: nvcr.io/nvidia/pytorch:24.03-py3
command: jupyter-lab --no-browser --port=8888 --ip=0.0.0.0 --allow-root --NotebookApp.token=''
volumes:
- ./workspace:/workspace
ports:
- "8888:8888"
working_dir: /workspace
environment:
- NVIDIA_VISIBLE_DEVICES=all
そして、以下のコマンドで起動します。
docker compose up
コマンド後に表示されるURLをコピーして、ブラウザに貼り付けることでJupyterLabにアクセスできます。
http://localhost:8888/
終了するときは、PoweShell上でctrl + Cか、JupyterLabのメニューから「File」から「Shut Down」を選びます。
ステップ5: 機械学習モデルをCUDAで動かす
以下の記事を参考にCUDAを活用してGPU環境で動かしてみました。
ローカルの他のPCからWindowsのIPアドレスを調べてアクセスする
PowerShell上で
ipconfig
IPv4 アドレスの情報が出てくるので、そのアドレスを使い上記のlocalhost:8888の部分を置き換えると、外部からアクセスできます。
セキュリティやファイアーウォールの設定によっては、外部アクセスの設定を変更しないといけないかもしれません。
いくつか、変更点はありましたが、動作確認しました。