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それぞれの公式サイトを確認すること。

この記事が気に入ったらサポートをしてみませんか?