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 + AlmaLinux-9 + CUDA + PyTorch 環境構築

Last updated at Posted at 2025-04-06

Windows 11 の WSL2 + AlmaLinux-9 環境上で NVIDIA CUDA 環境のインストールと PyTorch の動作確認をしたときのメモ。

なぜ AlmaLinux なのかというと自分の普段の仕事では RHEL 系で開発していて使い慣れているから、というそれだけの理由です。特に拘りがなければ Ubuntu のほうが楽で情報も多いと思います。

概要

おおまかな作業の流れは以下の通り。

  • (1) Windows 上で NVIDIA ドライバをインストールする
  • (2) WSL2 (AlmaLinux-9) をインストールする(以降の手順は WSL2上で実施)
  • (3) CUDA Toolkit 12.8(最新版)を Rocky 9 の手順に沿ってインストールする
    • ここではドライバはインストールしない
  • (4) Python バージョン切替・仮想環境用に pyenv インストールする
  • (5) PyTorch 2.6.0(最新版) をインストールして動作確認する
  • (6) 古いバージョンの CUDA Toolkit, PyTorch を共存させてインストールしてみる

詳細は以下の NVIDIA の公式ドキュメントを参照してインストールする。

NVIDIA ドライバのインストール

以下の公式ドキュメントに手順に従ってインストールする

NVIDIA ドライバは以下から自分の環境に合わせてダウンロード・インストールする。

WSL2のインストール

  • AlmaLinux-9 ディストリビューションをインストール
PS> wsl --install AlmaLinux-9
  • WSLカーネルの最新化
PS> wsl --update
  • WSL2 環境の起動
PS> wsl
$
  • WSL2環境からドライバが見えていることを確認
$ ls -l /usr/lib/wsl/lib/libcuda.so
-r-xr-xr-x 4 root root 166872 Mar 15 08:58 /usr/lib/wsl/lib/libcuda.so
$

CUDA Toolkit 12.8 (最新版)のインストール

CUDA Toolkit 12.8(現時点での最新版)をインストールする。

以下の公式ドキュメントの「Option 2:」の手順に従ってインストールする。

具体的な手順・インストールパッケージは以下の Rocky 9 の手順を参考にする。

wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda-repo-rhel9-12-8-local-12.8.1_570.124.06-1.x86_64.rpm
sudo rpm -i cuda-repo-rhel9-12-8-local-12.8.1_570.124.06-1.x86_64.rpm
sudo dnf clean all
sudo dnf -y install cuda-toolkit-12-8

インストールするのは cuda-toolkit-12-8 のみ。ここでドライバはインストールしないこと。

  • インストール完了後の確認
$ /usr/local/cuda/bin/nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2025 NVIDIA Corporation
Built on Fri_Feb_21_20:23:50_PST_2025
Cuda compilation tools, release 12.8, V12.8.93
Build cuda_12.8.r12.8/compiler.35583870_0
$ 

これで動作しているっぽい。

Python 環境設定

pyenv と venv を使ったPython仮想環境を準備する。

pyenv はPython バージョン切替のためにインストールする。
他にも alternatives を利用する方法もあるが、他環境(MacOS/Homebrew)との手順共通化やディストリビューションに含まれないバージョン利用時のために今回は pyenv を利用した。

  • 参考: AlmaLinux-9 標準の Python バージョン
$ python -V
Python 3.9.21

pyenv のインストール

pyenvのドキュメント に従ってインストール

  • 開発用ツールと依存パッケージのインストール
$ sudo dnf group install "Development Tools"
$ sudo dnf install git
$ sudo dnf install bzip2-devel readline-devel openssl-devel sqlite-devel libffi-devel tk-devel
  • pyenv をダウンロード
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
  • pyenv 高速化(省略可)
cd ~/.pyenv && src/configure && make -C src
  • ~/.bashrc への設定追加
~/.bashrc
### pyenv
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init - bash)"
  • ~/.bashrc 設定の有効化(もしくはWSL2シェルをいったん終了し再起動)
$ . ~/.bashrc
  • pyenv インストール完了後の確認
$ pyenv versions
* system (set by /home/XXX/.pyenv/version)
$
  • pyenv 用 Python 3.9.12 インストール
    • AlmaLinux-9 の同梱版も Python-3.9.12 であるが、今後 pyenv でバージョン切り替えできるようにするためにインストール
$ pyenv install 3.9.12
()
$ pyenv versions
* system (set by /home/XXX/.pyenv/version)
  3.9.12

PyTorch 動作確認

Python 仮想環境作成

作業ディレクトリ配下で以下を実行する

  • Python バージョン指定
$ pyenv local 3.9.12
  • Python 仮想環境作成
$ python -m venv ./venv-cuda128
  • Python 仮想環境の有効化
$ . ./venv-cuda128/bin/activate
  • pip 最新化
$ pip install --upgrade pip

PyTorch インストール

  • インストール時点での PyTorch 最新バージョン
    • PyTorch: 2.6.0 (Stable)
    • 対応CUDA: 12.6

これを試している時点では CUDA-12.8 は Nightly 開発版しか対応してなかったので、CUDA-12.6 用のリポジトリを使用。

  • PyTorch インストール
$ pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

PyTorch 動作確認

  • 状態表示スクリプト例
torch-info.py
#!/usr/bin/env python3

import torch

print("torch.__version__                   = ", torch.__version__)
print("torch.cuda.is_available()           = ", torch.cuda.is_available())
print("torch.version.cuda                  = ", torch.version.cuda)
print("torch.cuda.device_count()           = ", torch.cuda.device_count())
print("torch.cuda.get_device_name()        = ", torch.cuda.get_device_name())
print("torch.cuda.get_device_capability()  = ", torch.cuda.get_device_capability())
print("torch.backends.cudnn.is_available() = ", torch.backends.cudnn.is_available())
print("torch.backends.cudnn.version()      = ", torch.backends.cudnn.version())
  • 実行結果
$ ./torch-info.py
torch.__version__                   =  2.6.0+cu126
torch.cuda.is_available()           =  True
torch.version.cuda                  =  12.6
torch.cuda.device_count()           =  1
torch.cuda.get_device_name()        =  NVIDIA GeForce RTX 4070 Laptop GPU
torch.cuda.get_device_capability()  =  (8, 9)
torch.backends.cudnn.is_available() =  True
torch.backends.cudnn.version()      =  90501
$

ちゃんと動作しているっぽい。最新版のインストールはここまでで完了。


以前のバージョンの CUDA ToolKit / PyTorch との共存

自分の使いたいアプリケーションで古いバージョンの PyTorch に依存しているものがあるので、古いバージョンと共存してインストールしたい。

今回は以下のバージョンの組み合わせをインストールする。

  • Python: 3.9
  • PyTorch: 1.10.0
  • CUDA Toolkit: 11.3

CUDA Toolkit 11.3 のインストールパッケージ

CUDA Toolkit の以前のバージョンは CUDA Toolkit Archive から参照できる。

しかし、CUDA-11.3 は RHEL7 / RHEL8用RPMしか提供されていない。

今回は RHEL8 用RPMパッケージを利用して AlmaLinux-9 にインストールする方法を試してみた。自分が試してみた範囲では問題なく動作している。

自分以外でも CUDA 11.4 rhel8用パッケージを Rocky 9 で動作させた人がいるらしい。

AlmaLinux-9 でのインストール手順

  • RHEL8 用パッケージをダウンロードしリポジトリをインストールする
    • ここまでは公式の手順と同じ
wget https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda-repo-rhel8-11-3-local-11.3.1_465.19.01-1.x86_64.rpm
sudo rpm -i cuda-repo-rhel8-11-3-local-11.3.1_465.19.01-1.x86_64.rpm
sudo dnf clean all
  • cuda-toolkit-11.3 をインストールする
    • ここは公式の手順と異なるので注意
    • nvidia-drivercuda はインストールしてはいけない(はず。おそらく誤ったドライバが上書きされてしまう)
$ sudo dnf install cuda-toolkit-11.3
  • alternativesコマンドで CUDA Toolkit のバージョンを 11.3 へ切り替える
$ sudo alternatives --config cuda

There are 2 programs which provide 'cuda'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/local/cuda-12.8
   2           /usr/local/cuda-11.3

Enter to keep the current selection[+], or type selection number: 2
  • nvcc で動作確認
$ /usr/local/cuda/bin/nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May__3_19:15:13_PDT_2021
Cuda compilation tools, release 11.3, V11.3.109
Build cuda_11.3.r11.3/compiler.29920130_0
$

おそらくこれで動作してるっぽい。

Python 仮想環境の準備

  • 作業用ディレクトリを作成し Python 仮想環境を準備する
$ mkdir pytorch1.10-test
$ cd pytorch1.10-test/
$ pyenv local 3.9.12
$ python -m venv ./venv-cuda113
$ . ./venv-cuda113/bin/activate
$ pip install --upgrade pip

PyTorch (過去のバージョン)の動作確認

  • PyTorchの過去のバージョンの情報は以下のページを参照

  • torch 1.10.0+cu113 をインストールする

    • PyTorch の公式ページには cu111 までしか記載がないが、過去のアプリケーションの実績として cu113 を利用していたため今回も cu113 を指定
    • numpy も過去の動作実績のあるバージョンを指定。指定しないと互換性のない numpy-2.* がインストールされてしまいインストールが失敗する
$ pip install numpy==1.20.3 torch==1.10.0+cu113 torchvision==0.11.0+cu113
 -f https://download.pytorch.org/whl/torch_stable.html
  • PyTorch の動作確認
$ ./torch-info.py
torch.__version__                   =  1.10.0+cu113
torch.cuda.is_available()           =  True
torch.version.cuda                  =  11.3
torch.cuda.device_count()           =  1
torch.cuda.get_device_name()        =  NVIDIA GeForce RTX 4070 Laptop GPU
torch.cuda.get_device_capability()  =  (8, 9)
torch.backends.cudnn.is_available() =  True
torch.backends.cudnn.version()      =  8200
$

ちゃんと動作してるっぽい。

この後、このバージョンを利用するアプリケーションが正常に動作することも確認済み。


以上

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?