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

【概要】

本記事では、Windows Subsystem for Linux 2(WSL2)上のUbuntu 24.04 LTS環境において、NVIDIA GPUを活用した深層学習フレームワークであるPyTorchおよびTensorFlow(最新版)をセットアップする手順を解説する。Windows環境でLinuxベースの最新深層学習環境を構築する際の一助となることを目的とする。

【目次】

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

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

はじめに

本記事では、Windows Subsystem for Linux 2(WSL2)上のUbuntu 24.04 LTS環境において、NVIDIA GPUを活用した深層学習フレームワークであるPyTorchおよびTensorFlow(最新版)をセットアップする手順を解説する。Windows環境でLinuxベースの最新深層学習環境を構築する際の一助となることを目的とする。

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

注意: 本記事では、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(通常は最新LTS)がインストールされる。特定のディストリビューション(例:Ubuntu 24.04)をインストールしたい場合は、Microsoft Storeを利用するか、`wsl --install -d Ubuntu-24.04`のようにディストリビューションを指定する。

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

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

WSL2でGPUを利用するには、適切なカーネルバージョンが必要である。通常、現在のWSL2であれば要件を満たしている。

  1. Windowsで、コマンドプロンプトまたはPowerShellを実行する。
  2. インストール済みのUbuntu 24.04のカーネルバージョンを確認する。
    • まず、「wsl -l -v」でディストリビューション名とWSLバージョンを確認する(WSLバージョンが2であることを確認)。
      wsl -l -v
      
    • 次に、「wsl -d <ディストリビューション名> uname -r」を実行して、Ubuntuのカーネルバージョンを表示させる(例:Ubuntu-24.04)。
      wsl -d Ubuntu-24.04 uname -r
      
  3. 表示されたバージョンが、WSL 2のGPUサポートに必要なバージョン(5.10.x以上)であることを確認する。現在の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バージョンを選択する(通常、最新のNVIDIAドライバはCUDA 12.xに対応している)。GPUを使用しない場合はCPUを選択する。

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

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

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

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

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

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

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

    python3 -c "import torch; print(torch.cuda.is_available())"
    
    PyTorchのGPU認識確認結果(Trueが表示される例)
  3. python3で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 2.16以降では、`pip`でTensorFlowをインストールする際に、必要な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__ )"
    

    最新のバージョンが表示されればOKである。

  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の基本的な動作を確認する。TensorFlowの基本的なAPIはバージョン間で互換性が保たれていることが多い。

Pythonプログラムの実行方法

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

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

Pythonプログラムを動かすために、WSL 2Ubuntuでは「python3」コマンドを使う(仮想環境が有効な場合は、単に`python`でも良い場合がある)。

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

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

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

CUDA Toolkitのインストール

NVIDIAの公式リポジトリから、Ubuntu 24.04向けのCUDA Toolkit(例:CUDA 12.xの最新版)をインストールする。

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

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

    # ピン設定(ファイル名はバージョンにより変わる可能性あり)
    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のパスを環境変数に設定する必要がある場合がある(通常、TensorFlow/PyTorchは自動で見つけることが多いが、念のため)。`.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