0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2上にGPU対応のPyTorchをインストールするまで

Last updated at Posted at 2024-12-31

手元のRTX 3060が入ったゲーミングノートPCでPyTorchを使えるようにしたかったので年末に作業しました.
そのときの操作ログです.

1. NVIDIAのドライバを入れる

NVIDIAのサイト から自分のPCに入ってるGPUに合ったドライバをダウンロードしてくる.
自分が使ってるGPUがよくわかんない場合は,NVIDIA アプリ 経由でインストールするか,「デバイスマネージャ」を開いて「ディスプレイ アダプタ」を見て確認しましょう.

2. WSL2をインストール

省略.
マイクロソフトのサイト
あたりを参照してください.

PowerShellを管理者権限で開いて

wsl --install

でいけるはず.

動作確認

WSL2からGPUが認識されているかを確認

nvidia-smi

こんな感じでGPUの名前がリストに上がっていればOK.

$ nvidia-smi
Sun Dec 29 09:58:02 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.77.01              Driver Version: 566.36         CUDA Version: 12.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 RTX 3060 ...    On  |   00000000:01:00.0  On |                  N/A |
| N/A   50C    P8             15W /  115W |     885MiB /   6144MiB |      6%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

3. CUDA ToolKitのインストール

WSL2のターミナル上で実行します.
https://developer.nvidia.com/cuda-downloads
から

  • Operating System: Linux (Windowsじゃないです)
  • Architecture: x86_64
  • Distribution: WSL-Ubuntu
  • Version:2.0
  • Installer Type: deb(network) ※どれでもいいです

を選択すると,以下のような感じの"Installation Instructions"が表示されるので,WSL2のターミナル上で順番に入力して実行します.

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

nvcc

ここまでの操作で/usr/local/cuda/bin/nvccが使えるようになっているはず.

使わないかもしれないけど,nvccだけで起動できるように環境変数を設定しておく.

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#environment-setup参照.

以下の2行を~/.bashrcに追記.※12.6の部分はインストールしたバージョンに合わせて変更してください.

export PATH=/usr/local/cuda-12.6/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

以下のコマンドで設定を反映

source ~/.bashrc

これでnvccが使えるようになる.

nvcc --version

こんな感じの表示になればOK

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Oct_29_23:50:19_PDT_2024
Cuda compilation tools, release 12.6, V12.6.85
Build cuda_12.6.r12.6/compiler.35059454_0

4. python環境のインストール

anacondaは有料化されてしまったので,miniforgeを使います.

インストールは以下のコマンドでできます.

curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
bash Miniforge3-$(uname)-$(uname -m).sh

いろいろ質問されるけど、基本的にはyesと入力したり,ENTERキーを押していくだけでOK.最後の

You can undo this by running `conda init --reverse $SHELL`? [yes|no]
[no] >>> yes

はyesと入力してENTER.

source ~/.bashrc

を実行して設定を反映.

python動作確認

python --version

2024/12時点でPython 3.12.8です.とりあえずバージョン番号が表示されればOK.

5. 新しい環境作成

base環境のまま作業を進めてもいいのですが,なんとなく気持ち悪いので新しく環境を作りましょう.
以降はmyenvという名前で新しく環境を作っていきます.(名前はお好きにどうぞ)

以下のコマンドでpythonのバージョンを指定して環境を作成します.

mamba create -n myenv python=3.12.8

以下のコマンドで環境をbase⇒myenvに切り替えます.

mamba activate myenv

切り替わっているかどうかは,プロンプトの左側に環境名が表示されているかで確認できます.
こんな感じ.

(myenv) user@mynotebook:~$

5.1 いろいろパッケージをインストール

anacondaが使えないので,scikit-learnやpandas,numpy,matplotlibなどは自分でインストールしないと駄目です.
環境がmyenvに切り替わっていることを確認してから以下のコマンドを実行してください.(何を入れるかはお好みで)

mamba install numpy pandas scikit-learn matplotlib

condaコマンドでもいいのですが,パッケージ間の依存解決が糞遅いのでmambaコマンドを使っています.

6. pytorchをインストール

PyTorch 2.5以降はcondaの正式サポートを終了しました.仕方ないのでconda-forgeチャンネルを使ってインストールします.

mamba install pytorch torchvision torchaudio

注:このときにインストールされるpytorch等のバージョンが表示されるので確認してください.こんな感じ

  + pytorch                    2.5.1  cuda126_py312h1763f6d_306  conda-forge       37MB
  + torchvision               0.20.1  cuda126_py312_h17ccbaa_4   conda-forge        3MB
  + torchaudio                 2.5.1  cuda_126py312haeea92a_0    conda-forge        6MB

バージョン番号(2.5.1)あとにcudaのバージョン(cuda126)が表示されていることを確認してください.
これがcpu版の場合はcpuと表示されます.GPU版でないとGPUが宝の持ち腐れになります.

以降,別のパッケージを入れようとするとpytorchがCPU版になってしまうことがたまにあるので,
インストールされるときに表示されるバージョンを都度確認してください.

PyTorchの動作確認

torch.cuda.is_available()がTrueになることを確認

python -c "import torch; print(torch.cuda.is_available())"

7. jupyter lab

いつもVSCodeでコーディングしているのでjupyter labの出番はほとんどないのですが,ついでなのでjupyter labまで入れてしまいます.

mamba install jupyterlab

ターミナルからjupyter labと入力すると,

    To access the server, open this file in a browser:
        file:///home/user/.local/share/jupyter/runtime/jpserver-50231-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/lab?token=f2**********************************************
        http://127.0.0.1:8888/lab?token=f2**********************************************

みたいな表示が出るので,そのURLにアクセスすればjupyter labが使えます.

以上.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?