WSLでCUDA+Python環境を構築するメモ
wsl2 Ubuntu-22.04にPython3.11+Cudaを導入する備忘録。罠仕様もありかなり手間がかかる。
todo:各種公式サイトのURLを貼る。
環境
Windows10 home 22H2
Intel Core i7-10875H
Nvidia RTX3060-laptop
Ubuntu-22.04
WSL バージョン: 2.0.14.0
カーネル バージョン: 5.15.133.1-1
WSLg バージョン: 1.0.59
MSRDC バージョン: 1.2.4677
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.19045.3803
WSLのインストール
仮想化を有効にする
コントロールパネル -> プログラム ->Windowsの機能の有効化または無効化
下記の2つを有効化する。
Windows ハイパーバイザー プラットフォーム
仮想マシン プラットフォーム
DEPを有効化する
設定 -> システム -> 詳細情報 -> システムの詳細設定 -> パフォーマンス[設定] -> データ実行防止
「次に選択するものを除くすべてのプログラムおよびサービスについてDEPを有効にする」を選択する。
筆者はWSLのインストール時にHyper-Vが無効だと怒られて2時間ほど詰まったが、おそらくこの設定が足りていなかったものと思われる。
WSLのバージョンを設定する
wsl –set-default-version 2
WSLをインストールする
wsl --install
CUDAのインストール
CUDA自体はWindowsにインストールし、WSLにはコンパイル用のツールキットのみをインストールする。
WindowsへCUDAをインストールする
Nvidia公式から適切なインストーラを入手し、インストールする。
以降はWSL環境内で作業する。
WSLへCUDA toolkitをインストールする
ubuntuではなく、必ずwsl-ubuntuのものを用いる。ubuntuのものはcuda-driverまで含まれてしまい、Windowsのdriverを使わなければならない部分を上書きしてしまう。こうなるとwsl-ubuntuの再インストールをしたほうが早い。
sudo apt-key del 7fa2af80
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
sudo sh cuda_12.1.0_530.30.02_linux.run
nvidia-smiで表示がされればインストールできている。
Pythonのインストール
ソースコードからビルドする場合、configure時にopensslを明示的に指定しないと上手くいかない。そのためビルド済みのものを使用する。ただし、非公式のバイナリを使用するため何があっても自己責任である。
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install python3.11
sudo apt install python3-pip
sudo apt install python3.10-venv
おまけ:pytorch&xformersのインストール
2023/12/21 のcuda12.1環境の場合
pip3 install torch torchvision torchaudio
pip3 install -U xformers --index-url https://download.pytorch.org/whl/cu121
インストールコマンドはよく変わるので、pytorchとxformersそれぞれの公式サイトを確認すること。
この記事が気に入ったらサポートをしてみませんか?