WSL2 上の Ubuntu での NVIDIA CUDA ツールキット, NVIDIA cuDNN, PyTorch, TensorFlow 2.11 のインストールと動作確認(Windows 上)
本記事では、Windows Subsystem for Linux 2 (WSL2) 上の Ubuntu 22.04 環境で、NVIDIA GPU を活用した深層学習フレームワークである PyTorch および TensorFlow (バージョン 2.11) をセットアップする手順を解説します。Windows PC をお持ちで、Linux 環境での開発・実験を行いたい大学生や技術者の方を対象としています。
WSL 2 の Ubuntu 22.04 で GPU, TensorFlow, PyTorch を動かすための準備を説明する.
内容は,次の公式ページによるが,一部変更などを行っている.
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract
GPU, TensorFlow, PyTorch を使いたい,そして,手元に Windows マシンはあるのだけど,Ubuntu で動かしたい(Ubuntu でしか動かない)というときに便利.
(WSL 2 のインストールについては: 別ページ »で説明)
ソフトウェア類の利用条件は各自で確認すること.
【目次】
- はじめに
- 本記事の目的と対象読者
- 全体の流れ
- 前準備 (Windows / WSL)
- PyTorch のセットアップ (WSL Ubuntu)
- TensorFlow 2.11 のセットアップ (WSL Ubuntu)
- NVIDIA CUDA ツールキット 11.8 のインストール
- リポジトリの追加
- CUDA ツールキットのインストール (apt)
- パス設定
- NVIDIA cuDNN のインストール
- cuDNN パッケージのインストール (apt)
- Python 関連パッケージの準備
- 仮想環境の作成 (推奨)
- 必要な Python パッケージのインストール (pip, apt)
- TensorFlow 2.11 等のインストール (pip)
- 動作確認 (バージョン確認, GPU認識確認)
- NVIDIA CUDA ツールキット 11.8 のインストール
- TensorFlow の簡単なプログラム例
【サイト内の関連ページ】
はじめに
本記事では、WSL2上のUbuntu 22.04でNVIDIA GPUを利用してPyTorchとTensorFlow 2.11を動作させるための環境構築手順を解説します。大学生や技術者の方々が、Windows環境でLinuxベースの開発を行う際の一助となることを目指します。
全体の流れは以下の通りです。
- Windows側での必要な設定(WSL2の有効化、NVIDIAドライバのインストール)
- WSL Ubuntu環境の準備(カーネルバージョンの確認・更新)
- WSL Ubuntu内でのPython環境構築(仮想環境の利用推奨)
- PyTorchおよび関連ライブラリのインストールと動作確認
- TensorFlow 2.11、CUDAツールキット、cuDNNおよび関連ライブラリのインストールと動作確認
前準備 (Windows / WSL)
次の公式のページの情報により,前準備を行う
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract
Windows の要件確認 (Windows 11 推奨)
WSL 2 で NVIDIA GPU を利用するには、特定のバージョンの Windows が必要です。公式ドキュメント (https://docs.nvidia.com/cuda/wsl-user-guide/index.html#getting-started) を参照し、お使いの Windows が要件を満たしているか確認してください。
- Windows 11: 最新の Windows 11 であれば、通常、特別な設定なしで WSL 2 の GPU サポートが利用可能です。最新の更新プログラムを適用することを推奨します。
- Windows 10: 以前は Windows Insider Program への参加が必要でしたが、現在は特定のビルド番号以上であれば利用可能です。ただし、安定性や最新機能の利用を考慮すると、Windows 11 へのアップデートを推奨します。
(参考情報)以前の手順では Windows Insider Program の利用が案内されていましたが、現在では必須ではない可能性が高いです。もし Windows 10 を継続して利用し Insider Program を利用する場合は、更新によって Windows 11 になる可能性がある点にご注意ください。
WSL 2 と Ubuntu のインストール
手順は 別ページ »で説明
WSL 2 での Ubuntu のカーネルバージョン確認と更新
- Windows で,コマンドプロンプトを実行.
- インストール済みの Ubuntu のカーネルのバージョンの表示
- 「wsl -l」でディストリビューション名を確認
wsl -l
- 「wsl -d <ディストリビューション名> uname -r」を実行して,
Ubuntu のカーネルのバージョンの表示.
wsl -d Ubuntu-22.04 uname -r
- 「wsl -l」でディストリビューション名を確認
- 表示されたバージョンが,WSL 2 の GPU サポート要件を満たしているか確認します。一般的に、5.10.16.3以上のカーネルが必要です。
5系列以上のバージョンが表示されていれば、通常は問題ありません。
もし古い4系列が表示された場合(例: Windows 10 LTS版など)、バージョン番号を確認してください。4.19.121以上であれば基本的な要件は満たしていますが、最新の機能を利用するには5系列への更新が推奨されます。
表示されたカーネルバージョンが古い場合 (例: 4系列で 121 より小さい、または 5系列でも古い場合) は、更新が必要です。
更新の手順は次の通りです。
- コマンドプロンプトを管理者として開き「wsl --update」を実行します。
wsl --update
- 更新が完了したら、WSL を再起動するために「wsl --shutdown」を実行します。
wsl --shutdown
* 「wsl --update」を実行しても「利用できる更新はありません」と表示される場合:

Windows Update の設定を確認してください。
- Windows の設定で「Windows Update」を開き、「詳細オプション」に進みます。
- 「Windows の更新時に他の Microsoft 製品の更新プログラムを受け取る」がオンになっていることを確認します。オンでなければオンにしてください。
- 設定を戻り、「更新プログラムのチェック」をクリックして Windows Update を実行します。
- Windows Update が完了したら、再度管理者としてコマンドプロンプトを開き、「wsl --update」を実行してみてください。
NVIDIA ドライバのインストール (Windows)
Ubuntu のインストールが終わった後, NVIDIA ドライバを,Windows マシンにインストールする.
これは,Windows マシンにインストールするのであって,WSL上の Ubuntu でのインストール作業ではない.
- Windows で,コマンドプロンプトを実行.
- コマンドプロンプトで,次のコマンドを実行し,すべての Linux サブシステムをシャットダウンしておく.
wsl --shutdown
- グラフィックス・カードの種類が分からないときは,確認しておく.
タスクマネージャーの「パフォーマンス」タブや、hwinfo (URL: https://www.hwinfo.com/) などを使って調べることができる.
- NVIDIA ドライバの利用条件などは,次のページで,利用者で確認すること.
- NVIDIA ドライバは,次のWeb ページからダウンロード
【NVIDIA ドライバのダウンロードページ】 https://www.nvidia.co.jp/Download/index.aspx?lang=jp
ダウンロードページでは、通常「Game Ready ドライバ」と「Studio ドライバ」が選択できます。CUDA を利用した開発や計算が主目的の場合、「Studio ドライバ」の方が安定性が高い場合があります。ご自身の用途に合わせて選択してください。
- ダウンロードしたファイルを実行して,画面の指示に従いインストールする
PyTorch のセットアップ (WSL Ubuntu)
WSL Ubuntu の起動
Windows のコマンドプロンプトまたは PowerShell を開き、以下のコマンドで WSL Ubuntu を起動します。
# デフォルトのディストリビューションを起動する場合
wsl
# ディストリビューション名を指定して起動する場合 (事前に `wsl -l` で確認)
# 例: wsl -d Ubuntu-22.04
wsl -d <ディストリビューション名>
以降の手順は、この起動した Ubuntu ターミナル上で実行します。


必要なパッケージのインストール (apt)
PyTorch のインストールに必要な Python 関連パッケージを apt でインストールします。
sudo apt -y update
sudo apt -y install python3-dev python3-pip python3-setuptools python3-venv
Python パッケージの管理には、プロジェクトごとに独立した環境を作成できる **仮想環境** (例: `venv`) の利用を強く推奨します。これにより、システム全体の Python 環境を汚さず、パッケージ間のバージョン競合を防ぐことができます。以下に仮想環境の作成例を示します。(以降の `pip install` は仮想環境内で行うことを推奨します)
# プロジェクト用ディレクトリを作成し移動 (例: pytorch_project)
mkdir ~/pytorch_project
cd ~/pytorch_project
# 仮想環境を作成
python3 -m venv .venv
# 仮想環境を有効化
source .venv/bin/activate
# (プロンプトの先頭に (.venv) が表示されます)
# pip を最新版にアップグレード (推奨)
pip install --upgrade pip
# (仮想環境を抜けるには deactivate コマンドを実行します)
PyTorch のインストール (pip)
- パソコンの Web ブラウザで,PyTorch の Web ページを開く
- Get Started ページでインストールコマンドを生成する
次のように選択すると,その下に,実行すべき `pip` コマンドが表示されます。
- PyTorch Build: Stable (安定版) を選ぶ
- Your OS: Linux を選ぶ
- Package: pip を選ぶ
- Language: Python を選ぶ
- CUDA:
GPU を使わない場合は「None」または「CPU」を選びます。 GPU を使う場合には、適切な CUDA バージョンを選択します。 システムにインストールされているNVIDIAドライバと互換性のあるCUDAバージョンを選択します。通常は、利用可能な最新の安定版を選択しますが、特定のライブラリ要件がある場合はそれに合わせます。よくわからない場合は、推奨されているバージョン(通常はデフォルトで表示されます)を選択すると良いでしょう。(本記事執筆時点では CUDA 11.8 や 12.1 などが選択肢になります)
「Run this Command」のところに表示されるコマンドを確認します。
- 「Run this Command」のところに表示されたコマンドを実行
仮想環境を使用している場合は `sudo` は不要です。
# 例 (CUDA 11.8 の場合、表示されたコマンドをコピー&ペースト) pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
動作確認 (バージョン確認, GPU認識確認)
- Python でPyTorch のバージョン確認
バージョン番号が表示されればインストールは成功しています。表示されるバージョンは実行タイミングにより異なります。
python3 -c "import torch; print( torch.__version__ )"
- PyTorch で GPU が使用できるかの確認
CUDA 版をインストールした場合、次の Python コマンドを実行して `True` が表示されれば、GPU が認識されています。
python3 -c "import torch; print(torch.cuda.is_available())"
- python3 で PyTorch の簡単な動作確認
https://pytorch.org/get-started/locally/ に記載の Python プログラムを動かしてみる。テンソルが表示されれば成功です。
# Python対話モード (python3) またはファイルに保存して実行 import torch x = torch.rand(5, 3) print(x)
TensorFlow 2.11 のセットアップ (WSL Ubuntu)
WSL Ubuntu を起動します。(起動方法は PyTorch のセクション を参照)
NVIDIA CUDA ツールキット 11.8 のインストール
TensorFlow 2.11 の GPU サポートに必要な NVIDIA CUDA ツールキット 11.8 をインストールします。
注意: 本記事では TensorFlow 2.11 に合わせて CUDA 11.8 をインストールします。TensorFlow のバージョンによっては、要求される CUDA のバージョンが異なります(例: TensorFlow 2.12以降ではCUDA 11.8以降、TensorFlow 2.16ではCUDA 12.2など)。インストールする TensorFlow のバージョンに対応した CUDA ツールキットを選択してください。最新の互換性情報は TensorFlow および NVIDIA の公式ドキュメントで確認してください。
- NVIDIA CUDA パッケージリポジトリの準備
NVIDIA の公式手順に従い、リポジトリキーとリポジトリ情報をシステムに追加します。
NVIDIA CUDA パッケージレポジトリの URL: https://developer.nvidia.com/cuda-downloads (ここで Linux -> x86_64 -> Ubuntu -> 22.04 -> deb (network) を選択すると最新の手順が表示されます)
以下は、本記事執筆時点 (Ubuntu 22.04 / CUDA 11.8) での手順例です。必ず上記公式サイトで最新の手順を確認してください。 `apt-key` は非推奨のため `gpg` を使う方法を記載します。
# リポジトリのピン設定ファイルをダウンロード wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 # GPGキーをダウンロードして適切な場所に配置 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub sudo mv 3bf863cc.pub /usr/share/keyrings/nvidia-cuda-archive-keyring.gpg # リポジトリを追加 (署名キーを指定) echo "deb [signed-by=/usr/share/keyrings/nvidia-cuda-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" | sudo tee /etc/apt/sources.list.d/cuda.list # パッケージリストを更新 sudo apt-get update
- CUDA ツールキット 11.8 のインストール
次のコマンドを実行して CUDA ツールキット 11.8 をインストールします。
sudo apt-get -y install cuda-toolkit-11-8 # もしくは単に cuda-11-8 でもインストールされる場合があります # sudo apt-get -y install cuda-11-8
- NVIDIA CUDA ツールキットへのパス設定
インストールした CUDA ツールキットのコマンドやライブラリを利用できるように、環境変数を設定します。`.bashrc` に追記することで、シェル起動時に自動的に設定されます。
export CUDA_PATH=/usr/local/cuda-11.8 echo 'export CUDA_PATH=/usr/local/cuda-11.8' >> ${HOME}/.bashrc export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:${LD_LIBRARY_PATH} echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:${LD_LIBRARY_PATH}' >> ${HOME}/.bashrc export PATH=/usr/local/cuda-11.8/bin:${PATH} echo 'export PATH=/usr/local/cuda-11.8/bin:${PATH}' >> ${HOME}/.bashrc # 設定を即時反映させる(新しいターミナルを開くか、以下のコマンドを実行) source ${HOME}/.bashrc
- インストール確認
CUDA コンパイラ `nvcc` のバージョンを確認します。
nvcc --version # または cat /usr/local/cuda-11.8/version.json
NVIDIA cuDNN のインストール
TensorFlow の GPU アクセラレーションに必要な NVIDIA cuDNN ライブラリをインストールします。CUDA 11.x に対応する cuDNN 8 をインストールします。
cuDNN のインストール方法は複数あります(Debian パッケージ、Tar ファイル)。ここでは apt を使った Debian パッケージでのインストール方法を示します。TensorFlow のドキュメントで推奨される cuDNN バージョンを確認してください。
古いバージョンの Ubuntu (18.04, 20.04) や特定の cuDNN バージョンが必要な場合は、NVIDIA Machine Learning Repository (https://developer.download.nvidia.com/compute/machine-learning/repos/) の利用が必要になる場合があります。
- cuDNN パッケージの確認 (オプション)
インストール可能な cuDNN パッケージを確認します。
sudo apt-get update apt-cache search libcudnn8
- cuDNN パッケージのインストール
CUDA 11.x 向けの cuDNN 8 (ランタイムライブラリと開発用ヘッダファイル) をインストールします。
sudo apt-get install libcudnn8 libcudnn8-dev
- インストールされたパッケージの確認 (オプション)
dpkg -l | grep cudnn
Python 関連パッケージの準備
TensorFlow のインストールに必要な Python 環境を準備します。
- 必要なシステムパッケージのインストール (apt)
Python 開発ツール、pip、および仮想環境ツールをインストールします。(PyTorch のセクションで実施済みの場合は不要)
sudo apt -y update sudo apt -y install python3-dev python3-pip python3-venv
- 仮想環境の作成と有効化 (推奨)
TensorFlow 用の仮想環境を作成し、有効化します。これにより、他の Python プロジェクトとの依存関係の衝突を防ぎます。
# プロジェクト用のディレクトリを作成し移動 (例: tf_project) mkdir ~/tf_project cd ~/tf_project # 仮想環境を作成 python3 -m venv .venv # 仮想環境を有効化 source .venv/bin/activate # (プロンプトの先頭に (.venv) が表示されます) # pip を最新版にアップグレード (推奨) pip install --upgrade pip
- 使用する Python のバージョンの確認 (オプション)
python3 --version
以前の手順にあった、特定の apt パッケージや pip パッケージのアンインストール操作は、クリーンな環境や仮想環境を使用する場合は通常不要です。依存関係の問題が発生した場合に、個別に検討してください。
TensorFlow 2.11 等のインストール (pip)
仮想環境内で TensorFlow 2.11 および関連ライブラリを pip を使ってインストールします。
- 必要な Python ライブラリのインストール (apt)
NumPy や Matplotlib など、apt でインストール可能な基本的なライブラリをインストールします。OpenCV は必要に応じてインストールしてください。
sudo apt -y update sudo apt -y install python3-numpy python3-pil python3-pydot python3-matplotlib # 必要に応じて OpenCV 関連もインストール # sudo apt -y install libopencv-dev python3-opencv
- TensorFlow 2.11 と関連パッケージのインストール (pip)
仮想環境が有効化されていることを確認し、以下のコマンドを実行します (`sudo` は不要です)。
pip install -U tensorflow==2.11.* numpy pillow pydot matplotlib opencv-python pip install -U tf-models-official==2.11.* tf_slim tensorflow_datasets tensorflow-hub keras==2.11.* keras-tuner keras-visualizer pip install git+https://github.com/tensorflow/docs pip install git+https://github.com/tensorflow/examples.git # keras-contrib はメンテナンスが停止しており、TF2.x との互換性問題があるため推奨されません。 # pip install git+https://www.github.com/keras-team/keras-contrib.git # ← 非推奨
エラーメッセージが出ていないことを確認してください。
動作確認 (バージョン確認, GPU認識確認)
- TensorFlow のバージョン確認
次のコマンドを実行し、インストールされた TensorFlow のバージョンを確認します。
python3 -c "import tensorflow as tf; print( tf.__version__ )"
2.11系のバージョンが表示されれば OK です。
- GPU が認識できてるかの確認
TensorFlow が GPU を認識できているか確認します。
python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))" # または以前のコマンド # python3 -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
出力に GPU デバイスの情報 (例: `PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')`) が含まれていれば、GPU が認識されています。空のリスト `[]` が返る場合は認識されていません。
GPU が認識されない場合は、以下の点を確認してください。
- Windows 側で NVIDIA ドライバが正しくインストールされているか (Windows のコマンドプロンプトで `nvidia-smi` を実行)。
- WSL Ubuntu 側で CUDA Toolkit と cuDNN が正しくインストールされ、パスが通っているか (Ubuntu ターミナルで `nvcc --version` を実行)。
- インストールした TensorFlow のバージョンと、CUDA/cuDNN のバージョンの互換性があるか (TensorFlow 公式ドキュメントを確認)。
- WSL を再起動してみる (`wsl --shutdown` を Windows 側で実行後、再度 WSL を起動)。
- NVIDIA の WSL User Guide (https://docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract) も参照してください。
TensorFlow のプログラム例
簡単な Python プログラムを実行して TensorFlow の基本的な動作を確認します。 https://github.com/tensorflow/tensorflow にも多くのサンプルがあります。
Python プログラムの実行方法
これらの Python プログラムを実行するには、以下のいずれかの方法があります。
- ファイルとして保存して実行:
- 下記のコードをテキストエディタ (例: `nano`, `vim`, または Windows 側の VS Code など) で `hello.py` や `add.py` のようなファイル名で保存します。
- WSL Ubuntu ターミナルで `python3 hello.py` のように実行します。(仮想環境が有効なことを確認してください)
- Python 対話モードで実行:
- ターミナルで `python3` と入力し、Python 対話モードを開始します。(仮想環境が有効なことを確認してください)
- 表示された `>>>` プロンプトに対して、コードを一行ずつ(または複数行まとめて)入力し、Enter キーを押します。
* Python プログラムを動かすために, WSL 2 の Ubuntu では「python3」コマンドを使います。(仮想環境が有効な場合は、単に `python` でも良い場合があります) あるいは, PyCharmなどの IDE に統合されたPython コンソールも便利です。
- 次の Python プログラムを実行してみる.
結果として 「Hello, TensorFlow!」のように表示されるので確認する. (TensorFlow のバージョンによっては `tf.Tensor(b'Hello, TensorFlow!', shape=(), dtype=string)` のような表示になることもあります)
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') tf.print(hello) # print(hello) でも可
- 今度は,次の Python プログラムを実行する
結果として 「42」のように表示されるので確認する. (TensorFlow のバージョンによっては `tf.Tensor(42, shape=(), dtype=int32)` のような表示になることもあります)
「tf.add(a, b)」と「a + b」は,同じ結果になります。
import tensorflow as tf a = tf.constant(10) b = tf.constant(32) tf.print( tf.add(a, b) ) tf.print( a + b )
- 今度は,次の Python プログラムを実行する (行列演算の例)
結果として 12 が表示されるので確認する. (TensorFlow のバージョンによっては `tf.Tensor([[12.]], shape=(1, 1), dtype=float32)` のような表示になることもあります)
import tensorflow as tf matrix1 = tf.constant([[3., 3.]]) matrix2 = tf.constant([[2.],[2.]]) tf.print( tf.matmul(matrix1, matrix2) )