WSL2 上の Ubuntu 24.04 で NVIDIA CUDA、PyTorch、TensorFlow(最新版)をセットアップする手順

【概要】

本記事では、Windows Subsystem for Linux 2(WSL2)上のUbuntu 24.04 LTS環境において、NVIDIA GPUを活用した深層学習フレームワークであるPyTorchおよびTensorFlowをセットアップする手順を解説する。

【目次】

  1. はじめに
    • 本記事の目的と前提
    • 全体の流れ
  2. 前準備(Windows / WSL)
  3. PyTorch(最新版)のセットアップ(WSL Ubuntu)
  4. TensorFlow(最新版)のセットアップ(WSL Ubuntu)
  5. TensorFlowの簡単なプログラム例
  6. (オプション)CUDA / cuDNNの手動インストール

【サイト内の関連ページ】

はじめに

本手順は主に以下の公式ドキュメントを基に構成されている。

注意: 本記事では、TensorFlowのインストールにおいて、CUDA/cuDNNライブラリを自動的にセットアップするtensorflow[and-cuda]パッケージの利用を推奨する。手動でのCUDA/cuDNNインストール手順もオプションとして記載するが、通常は自動インストールで十分である。

全体の流れは以下のとおりである。

  1. Windows側での前準備(WSL2有効化、NVIDIAドライバインストール)
  2. WSL Ubuntu 24.04環境の準備(カーネル確認)
  3. PyTorchのセットアップ(仮想環境利用を推奨)
  4. TensorFlowのセットアップ(仮想環境利用を推奨、自動依存関係解決)
  5. 各フレームワークの動作確認(GPU認識確認を含む)
  6. (オプション)CUDA / cuDNNの手動インストール手順

ソフトウェア類の利用条件は各自で確認すること。

前準備(Windows / WSL)

NVIDIA公式のWSL User Guideを参考に、前準備を行う。

https://docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract

Windowsの要件確認

WSL 2でNVIDIA GPUを利用するには、以下のWindowsバージョンが必要である。

詳細は公式ドキュメント(https://docs.nvidia.com/cuda/wsl-user-guide/index.html#getting-started)を参照すること。

WSL 2とUbuntu 24.04のインストール

WSL2が未インストールの場合は、管理者権限のPowerShellまたはコマンドプロンプトで以下を実行する。

wsl --install

このコマンドにより、WSL2とデフォルトのUbuntuがインストールされる。特定のディストリビューションをインストールする場合は、Microsoft Storeを利用するか、wsl --install -d Ubuntu-24.04のようにディストリビューションを指定する。

詳細な手順は別ページ »も参照すること。

WSL 2 Ubuntuのカーネルバージョン確認

WSL2でGPUを利用するには、カーネルバージョン5.10.43.3以上が必要である。現在のWSL2では通常この要件を満たしている。

  1. Windowsで、コマンドプロンプトまたはPowerShellを実行する。
  2. インストール済みのUbuntu 24.04のカーネルバージョンを確認する。
    • まず、wsl -l -vでディストリビューション名とWSLバージョンを確認する(WSLバージョンが2であることを確認)。
      wsl -l -v
      
    • 次に、wsl -d <ディストリビューション名> uname -rを実行して、Ubuntuのカーネルバージョンを表示させる。
      wsl -d Ubuntu-24.04 uname -r
      
  3. 表示されたバージョンが5.10.43.3以上であることを確認する。現在のWSL2カーネルは通常5.15.x以上であり、この要件を満たしている。
カーネルバージョンが古い場合は、Windowsコマンドプロンプトを管理者として開きwsl --updateを実行し、その後wsl --shutdownでWSLを再起動する。それでも更新されない場合は、Windows Updateの設定で「他のMicrosoft製品の更新プログラムを受け取る」がオンになっているか確認すること。

NVIDIAドライバのインストール(Windows側)

WSL2環境では、NVIDIAドライバはWindows側にのみインストールする。WSL(Ubuntu)側にはインストールしない。

  1. グラフィックスカードの種類を確認しておく(タスクマネージャーの「パフォーマンス」タブなど)。
  2. ドライバインストールの前に、WSLをシャットダウンする。WindowsのコマンドプロンプトまたはPowerShellで以下を実行する。
    wsl --shutdown
    
  3. NVIDIAドライバの利用条件は、次のページで利用者自身が確認すること。

    https://docs.nvidia.com/cuda/wsl-user-guide/index.html

  4. NVIDIA公式サイトから、最新のWindows用ドライバをダウンロードする。

    NVIDIAドライバのダウンロードページ】 https://www.nvidia.co.jp/Download/index.aspx?lang=jp

    NVIDIAドライバダウンロードページのスクリーンショット

    ダウンロードページでは、「Game Readyドライバ」と「Studioドライバ」が選択できる。CUDAを利用した開発や計算が主目的の場合、安定性に重点を置いた「Studioドライバ」が適している場合がある。「Game Readyドライバ」は最新ゲームへの最適化が優先される。用途に合わせて選択すること。

  5. ダウンロードしたファイルを実行して、画面の指示に従いインストールする。
  6. インストール完了後、Windowsの再起動が必要な場合がある。

PyTorch(最新版)のセットアップ(WSL Ubuntu)

WSL Ubuntuの起動

WindowsのコマンドプロンプトまたはPowerShellを開き、以下のコマンドでWSL Ubuntu 24.04を起動する。

# デフォルトがUbuntu 24.04の場合
wsl

# ディストリビューション名を指定する場合
wsl -d Ubuntu-24.04

以降の手順は、この起動したUbuntuターミナル上で実行する。

Python環境の準備

PyTorchのインストールに必要なPython関連パッケージをaptでインストールする。また、パッケージ管理のために仮想環境(venv)を利用することを推奨する。

  1. 基本パッケージのインストール

    sudo apt update
    sudo apt -y install python3-dev python3-pip python3-setuptools python3-venv
    
  2. 仮想環境の作成と有効化(推奨)

    プロジェクトごとに独立したPython環境を作成する。

    # プロジェクト用ディレクトリを作成し移動(例:pytorch_project)
    mkdir ~/pytorch_project
    cd ~/pytorch_project
    
    # 仮想環境を作成(例:.venvという名前で)
    python3 -m venv .venv
    
    # 仮想環境を有効化(プロンプトの先頭に(.venv)が表示される)
    source .venv/bin/activate
    
    # pipを最新版にアップグレード(推奨)
    pip install --upgrade pip
    
    # (仮想環境を抜けるにはdeactivateコマンドを実行する)
    

PyTorchのインストール(pip)

仮想環境が有効化されていることを確認し、PyTorchをインストールする。

  1. Webブラウザで、PyTorchの公式Webページを開き、「Get Started」セクションに進む。

    https://pytorch.org/get-started/locally/

  2. 自身の環境に合わせてオプションを選択し、表示されるpip installコマンドを確認する。
    • PyTorch Build: Stable(安定版)を選択する。
    • Your OS: Linuxを選択する。
    • Package: Pipを選択する。
    • Language: Pythonを選択する。
    • Compute Platform: CUDA 12.1または利用可能な最新のCUDAバージョンを選択する。GPUを使用しない場合はCPUを選択する。

    「Run this Command」に表示されるコマンドを確認する。

  3. 表示されたコマンドをコピーし、Ubuntuターミナルで実行する。仮想環境内ではsudoは不要である。
    # 例(CUDA 12.1の場合、公式サイトで確認したコマンドを実行)
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
    
    PyTorchインストールコマンドの実行例

動作確認(バージョン確認、GPU認識確認)

  1. PythonでPyTorchのバージョン確認を行う。

    バージョン番号が表示されればインストールは成功である。

    python3 -c "import torch; print( torch.__version__ )"
    
  2. PyTorchでGPUが使用できるか確認する。

    CUDA版をインストールした場合、次のコマンドを実行してTrueが表示されれば、GPUが認識されている。

    python3 -c "import torch; print(torch.cuda.is_available())"
    
    PyTorchのGPU認識確認結果(Trueが表示される例)
  3. PyTorchの簡単な動作確認を行う。

    テンソルが表示されれば成功である。

    # Python対話モード(python3)またはファイルに保存して実行
    import torch
    x = torch.rand(5, 3)
    print(x)
    

TensorFlow(最新版)のセットアップ(WSL Ubuntu)

PyTorchと同様に、WSL Ubuntu 24.04ターミナルで作業を行う。

Python環境の準備

TensorFlow用にも仮想環境を作成することを推奨する。PyTorchと同じ仮想環境を使用することも可能だが、依存関係の衝突を避けるために別の環境を作成する方がよい場合がある。

  1. 基本パッケージのインストール(apt)

    PyTorchのセクションで実施済みの場合は不要である。

    sudo apt update
    sudo apt -y install python3-dev python3-pip python3-setuptools python3-venv
    
  2. 仮想環境の作成と有効化(推奨)

    PyTorchとは別の仮想環境を作成する場合の例を示す。

    # プロジェクト用のディレクトリを作成し移動(例:tf_project)
    mkdir ~/tf_project
    cd ~/tf_project
    
    # 仮想環境を作成
    python3 -m venv .venv
    
    # 仮想環境を有効化
    source .venv/bin/activate
    
    # pipを最新版にアップグレード(推奨)
    pip install --upgrade pip
    

TensorFlowのインストール(自動依存関係解決)

現在のTensorFlowでは、pipでインストールする際に、CUDA およびcuDNNライブラリも同時にインストールできる。これにより、手動でのCUDA ToolkitやcuDNNのインストールが不要となる。

仮想環境が有効化されていることを確認し、以下のコマンドを実行する(sudoは不要)。

# TensorFlowとCUDA/cuDNN依存関係を自動でインストール
pip install tensorflow[and-cuda]

このコマンドは、NVIDIAドライバと互換性のあるCUDAおよびcuDNNライブラリをTensorFlowパッケージと共にインストールする。

エラーメッセージが出ていないことを確認する。

動作確認(バージョン確認、GPU認識確認)

  1. TensorFlowのバージョン確認

    次のコマンドを実行し、インストールされたTensorFlowのバージョンを確認する。

    python3 -c "import tensorflow as tf; print( tf.__version__ )"
    

    バージョン番号が表示されれば成功である。

  2. GPUが認識できているかの確認

    TensorFlowがGPUを認識できているか確認する。

    python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
    

    出力にGPUデバイスの情報(例:[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')])が含まれていれば、GPUが認識されている。空のリスト[]が返る場合は認識されていない。

    TensorFlowのGPU認識確認結果(GPUデバイス情報が表示される例)
    GPUが認識されない場合は、以下の点を確認すること。

    • Windows側で最新のNVIDIAドライバが正しくインストールされているか(Windowsのコマンドプロンプトでnvidia-smiを実行)。
    • WSL Ubuntuターミナルでnvidia-smiコマンドが実行でき、GPU情報が表示されるか。WSL2の場合、/usr/lib/wsl/lib/nvidia-smiにあるため、フルパスで実行するか、PATHに追加する必要がある場合がある。
    • TensorFlowをインストールした仮想環境が有効になっているか。
    • pip install tensorflow[and-cuda]がエラーなく完了したか。問題があった場合は、仮想環境を再作成して再試行するか、手動でのCUDA/cuDNNインストールを検討する。
    • WSLを再起動してみる(wsl --shutdownをWindows側で実行後、再度WSLを起動)。
    • NVIDIAのWSL User Guide(https://docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract)も参照すること。

TensorFlowの簡単なプログラム例

簡単なPythonプログラムを実行してTensorFlowの基本的な動作を確認する。

Pythonプログラムの実行方法

これらのPythonプログラムを実行するには、以下のいずれかの方法がある。

  1. ファイルとして保存して実行:
    • 下記のコードをテキストエディタ(例:nanovim)でhello.pyのようなファイル名で保存する。
    • WSL Ubuntuターミナルでpython3 hello.pyのように実行する(仮想環境が有効なことを確認すること)。
  2. Python対話モードで実行:
    • ターミナルでpython3と入力し、Python対話モードを開始する(仮想環境が有効なことを確認すること)。
    • 表示された>>>プロンプトに対して、コードを入力し、Enterキーを押す。
Pythonプログラムを実行するには、WSL 2Ubuntupython3コマンドを使う(仮想環境が有効な場合は、単にpythonでもよい場合がある)。

(オプション)CUDA / cuDNNの手動インストール

pip install tensorflow[and-cuda]で問題が発生する場合や、特定のバージョンのCUDA Toolkit / cuDNNをシステム全体にインストールしたい場合は、以下の手順で手動インストールを行う。これはUbuntu 24.04 LTSでの手順である。

注意: この手順を実行する前に、tensorflow[and-cuda]でインストールされた可能性のあるCUDA/cuDNN関連パッケージ(例:nvidia-cudnn-cu12nvidia-cuda-nvrtc-cu12など)をpip uninstallで削除しておくことを推奨する。

CUDA Toolkitのインストール

NVIDIAの公式リポジトリから、Ubuntu 24.04向けのCUDA Toolkitをインストールする。

  1. NVIDIAリポジトリとGPGキーの設定

    NVIDIA CUDAダウンロードページ(https://developer.nvidia.com/cuda-downloads)でLinux > x86_64 > Ubuntu > 24.04 > deb(network)を選択し、表示される最新のコマンドを実行する。以下は一例である。必ず公式サイトで最新のコマンドを確認すること。

    # ピン設定(ファイル名はバージョンにより変わる可能性あり)
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin
    sudo mv cuda-ubuntu2404.pin /etc/apt/preferences.d/cuda-repository-pin-600
    
    # リポジトリキーリングのインストール(ファイル名はバージョンにより変わる可能性あり)
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    
  2. CUDA Toolkitパッケージのインストール

    インストールしたいCUDA Toolkitバージョンを指定してインストールする(例:cuda-toolkit-12-5)。cuda-toolkitを指定すると利用可能な最新版がインストールされることが多い。

    sudo apt-get -y install cuda-toolkit-12-5
    # または最新版をインストール
    # sudo apt-get -y install cuda-toolkit
    

cuDNNのインストール

CUDA Toolkitに対応するcuDNNをインストールする。Ubuntu 24.04 / CUDA 12.xの場合、libcudnn9パッケージなどが利用可能である。

sudo apt-get update
# ランタイムライブラリと開発用ヘッダをインストール
sudo apt-get install libcudnn9 libcudnn9-dev

インストールするcuDNNのバージョンは、使用するTensorFlowやPyTorchのバージョンとの互換性を確認すること。

環境変数の設定

手動でインストールしたCUDA Toolkitのパスを環境変数に設定する必要がある場合がある。.bashrcなどに追記する。

# 例:CUDA 12.5をインストールした場合
echo 'export PATH=/usr/local/cuda-12.5/bin:${PATH}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64:${LD_LIBRARY_PATH}' >> ~/.bashrc
source ~/.bashrc

設定後、nvcc --versionでCUDA Toolkitのバージョンが表示されるか確認する。

nvcc --version