WSL2 上の Ubuntu での NVIDIA CUDA ツールキット, NVIDIA cuDNN, PyTorch, TensorFlow 2.11 のインストールと動作確認(Windows 上)
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 のインストールについては: 別ページ »で説明)
ソフトウェア類の利用条件は各自で確認すること.
【目次】
- 前準備
- PyTorch のインストール
- TensorFlow 2.11, numpy, pillow, pydot, matplotlib, keras, opencv-python (WSL2 の Ubuntu 上)
- TensorFlow 2 のプログラム例
【サイト内の関連ページ】
前準備
次の公式のページの情報により,前準備を行う
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract
Windows 10 の場合には,Windows 11 に更新するか,Windows Insider Preview を使う
公式の手順では,「Windows 10 の場合には,Windows 10 Insider Program での更新が必要」とされています. ところが,現時点では,Windows 10 Insider Program での更新を行うと,Windows 11 に更新されてしまう場合があるようです. そのため,ふつうに Windows 11 に更新する(Windows 10 Inside Program は使わない)方が良い可能性があります.
ここでは,Windows Insider Preview を使う手順を説明します.
- 次の URL で,Windows 10 Insider Program に登録する.
- Windows の設定の「更新とセキュリティ」で,「Windows Insider Programの設定」をクリック
- 「診断&フィードバックの設定に移動し、オプションの診断データをオンにします。」が表示される場合には,画面の指示に従い,オプションの診断データをオンにする.
- 設定を行う.「Insiderの設定を選択してください」では,「Devチャネル」を選ぶ.
- 画面の指示に従い,再起動する.
- 次に,設定で「Windows Update」を選び.更新を行う.これにより,Insider Preview の機能がインストールされる.
WSL 2 と Ubuntu のインストール
手順は 別ページ »で説明
WSL 2 での Ubuntu のバージョン確認と更新
- Windows で,コマンドプロンプトを実行.
- インストール済みの Ubuntu のカーネルのバージョンの表示
- 「wsl -l」でディストリビューション名を確認
wsl -l
- 「wsl -d <ディストリビューション名> uname -r」を実行して,
Ubuntu のカーネルのバージョンの表示.
- 「wsl -l」でディストリビューション名を確認
- 表示されたバージョンが,5系列であることを確認.4系列である場合には,
4.9.121のように,121 以上になっていることを確認.
- 次のように,5系列以上になっていれば OK.
- Windows 10 の LTS 版を使い続けている場合には,4系列が
表示されると思われる.
4.9.121のように,121 以上になっていれば OK.
4系列を使っていて,121 より小さい値のときは,更新する必要がある.
更新の手順は次の通り.
- コマンドプロンプトを管理者として開き「wsl --update」あるいは「wsl -d <ディストリビューション名> --update」を実行
- 表示の指示に従い,「wsl --shutdown」を実行
* 「wsl --update」あるいは「wsl -d <ディストリビューション名> --update」を実行を実行したが, 「利用できる更新ない」というとき(下図のように)
- 「Windows Update」の設定で,「詳細オプション(追加の更新コントールと設定)」を開く.
- 「Windows の更新時に他の Microsoft 製品の更新プログラムを受け取る」をオンにする.
- そして,Windows Update で「更新プログラムのチェック」をクリックし,更新する.
- 「wsl --update」あるいは「wsl -d <ディストリビューション名> --update」を再度実行する.
- 次のように,5系列以上になっていれば OK.
NVIDIA ドライバのインストール
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
- ダウンロードしたファイルを実行して,インストールする
PyTorch のインストール
- Windows で,コマンドプロンプトを実行.
- WSL で Ubuntu を起動
- 既定(デフォルト)のディストリビューションを指定している場合,あるいは,ディストリビューションを 1つしかインストールしていない場合は,
次のコマンドで起動.
wsl
- そうでない場合には「wsl -l」でディストリビューション名を確認の上,
「wsl -d <ディストリビューション名>」で起動
- 既定(デフォルト)のディストリビューションを指定している場合,あるいは,ディストリビューションを 1つしかインストールしていない場合は,
次のコマンドで起動.
- Python3 開発用ファイル,pip, setuptools のインストール
sudo apt -y update sudo apt -y install python3-dev python3-pip python3-setuptools
- パソコンの Web ブラウザで,PyTorch の Web ページを開く
- コマンドを表示させる
次のように選ぶと,その下に,ランタイムコマンドが表示される
- PyTorch Build: Stable を選ぶ
- Your OS: Linux を選ぶ
- Package: pip を選ぶ
- Language: Python を選ぶ
- CUDA:
CUDA を使わない場合は「CPU」を選ぶ. CUDA を使う場合には,次の手順で行う.
CUDA を使うとき,CUDA のバージョンを選ぶ.
そして,「Run this Command」のところに表示されるコマンドを確認.
- 「Run this Command」のところに表示されたコマンドを実行
頭には「sudo」を付ける.実行するコマンドは「sudo pip3 ....」のようになる.
- Python でPyTorch のバージョン確認
バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.
python3 -c "import torch; print( torch.__version__ )"
- PyTorch で GPU が使用できるかの確認
次の Python プログラムを実行
python3 -c "import torch; print(torch.__version__, torch.cuda.is_available())"
- python3 で PyTorch の動作確認
https://pytorch.org/get-started/locally/ に記載の Python プログラムを動かしてみるimport torch x = torch.rand(5, 3) print(x)
TensorFlow 2.11, numpy, pillow, pydot, matplotlib, keras, opencv-python (WSL2 の Ubuntu 上)
- Windows で,コマンドプロンプトを実行.
- WSL で Ubuntu を起動
- 既定(デフォルト)のディストリビューションを指定している場合,あるいは,ディストリビューションを 1つしかインストールしていない場合は,
次のコマンドで起動.
wsl
- そうでない場合には「wsl -l」でディストリビューション名を確認の上,
「wsl -d <ディストリビューション名>」で起動
- 既定(デフォルト)のディストリビューションを指定している場合,あるいは,ディストリビューションを 1つしかインストールしていない場合は,
次のコマンドで起動.
- NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8 のインストール
TensorFlow 2.11 の動作に使う.
Ubuntu 22.04 で NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8 のインストールを行う.
- NVIDIA CUDA パッケージレポジトリで,ファイル名を確認
NVIDIA CUDA パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/cuda/repos/
Ubuntu 22.04 の場合は,https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ で確認.
「
.pub」という名前の付いたファイルを確認. 「cuda-ubuntu...
.pin」という名前の付いたファイルを確認. - NVIDIA CUDA パッケージレポジトリを,Ubuntu システムに追加
このとき,いま,確認したファイル名を指定すること.
端末で,次のように操作する.
Ubuntu 22.04 の場合は,次の操作により,NVIDIA CUDA のパッケージレポジトリが Ubuntu システムに追加される.
sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /"
- NVIDIA CUDA ツールキットに関するパッケージ名の確認
sudo apt -y update apt-cache search cuda-11
- 今度は,NVIDIA cudnn に関するパッケージ名の確認
sudo apt -y update apt-cache search cudnn
- NVIDIA CUDA パッケージレポジトリを用いて,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8 のインストール
Ubuntu 22.04 の場合は,次の操作により,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8 がインストールされる.
次のコマンドを実行.
sudo apt -y update sudo apt -y install cuda-11-8
(以下省略)- NVIDIA CUDA ツールキットにパスを通す設定
次のコマンドを実行.
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
- インストールできたことの確認のため,CUDA ツールキットのバージョンを確認
次のコマンドを実行.
cat /usr/local/cuda-11.8/version.json
- NVIDIA cuDNN のインストール
古いバージョンの Ubuntu である Ubuntu 20.04 や Ubuntu 18.04 で,下に書いた手順でうまくいかないような場合は,NVIDIA 機械学習パッケージレポジトリを利用できる場合もある.参考にしてください.
NVIDIA 機械学習パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/machine-learning/repos/
- 再度,NVIDIA cudnn に関するパッケージ名の確認
sudo apt -y update apt-cache search cudnn
- いま確認したパッケージ名を指定して,NVIDIA cuDNN のインストール
sudo apt -y install libcudnn8 libcudnn8-dev
- インストールされたパッケージの確認
dpkg -l | grep cudnn
- NVIDIA CUDA パッケージレポジトリを,Ubuntu システムに追加
- NVIDIA CUDA パッケージレポジトリで,ファイル名を確認
- Python3 開発用ファイル,pip, setuptools のインストール
sudo apt -y update sudo apt -y install python3-dev python3-pip python3-setuptools
- 使用する Python のバージョンの確認
python3 --version
- パッケージのアンインストール操作
* トラブルの可能性を減らすために,次の操作でアンインストールを行っておく.
sudo apt -y remove python3-keras sudo pip3 uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow-intel tensorflow-text tensorflow-estimator tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
- TensorFlow の前提パッケージのインストール
* トラブルの可能性を減らすために,pip3 を用いたアンインストール操作を行っておく.
sudo pip3 uninstall -y six wheel astunparse tensorflow-estimator numpy keras-preprocessing absl-py wrapt gast flatbuffers grpcio opt-einsum protobuf termcolor typing-extensions google-pasta h5py tensorboard-plugin-wit markdown werkzeug requests-oauthlib rsa cachetools google-auth google-auth-oauthlib tensorboard tensorflow sudo apt -y install python3-six python3-wheel python3-numpy python3-grpcio python3-protobuf python3-termcolor python3-typing-extensions python3-h5py python3-markdown python3-werkzeug python3-requests-oauthlib python3-rsa python3-cachetools python3-google-auth
(以下省略) - TensorFlow 2.11, numpy, pillow, pydot, matplotlib, keras, opencv-python のインストール
sudo apt -y update sudo apt -y install python3-numpy python3-pil python3-pydot python3-matplotlib sudo apt -y install libopencv-dev libopencv-core-dev python3-opencv libopencv-contrib-dev opencv-data sudo pip3 install -U tensorflow tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer sudo pip3 install git+https://github.com/tensorflow/docs sudo pip3 install git+https://github.com/tensorflow/examples.git sudo pip3 install git+https://www.github.com/keras-team/keras-contrib.git
- その結果,エラーメッセージが出ていないことを確認.
- TensorFlow のバージョン確認
次のコマンドを実行.
バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.
python3 -c "import tensorflow as tf; print( tf.__version__ )"
- GPU が認識できてるかの確認
TensorFlow が GPU を認識できているかの確認は,端末で,次を実行して行う.
python3 -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
「device_type: "GPU"」があれば,GPUが認識できている.
動かない場合には, 次の公式ページが解決の手がかりになる可能性がある.
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract
TensorFlow のプログラム例
https://github.com/tensorflow/tensorflow に記載のサンプルプログラムを実行してみる
Python プログラムの実行
* Python プログラムを動かすために, WSL 2 の Ubuntu では「python3」コマンドを使う. あるいは, PyCharmなどにある Python コンソールも便利である.
- 次の Python プログラムを実行してみる.
結果として 「Hello, TensorFlow!」のように表示されるので確認する.
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') print(hello)
- 今度は,次の Python プログラムを実行する
結果として 「42」のように表示されるので確認する.
「tf.add(a, b)」と「a + b」は,同じ結果になる
import tensorflow as tf a = tf.constant(10) b = tf.constant(32) print( tf.add(a, b) ) print( a + b )
- 今度は,次の Python プログラムを実行する
結果として 12 が表示されるので確認する.
import tensorflow as tf matrix1 = tf.constant([[3., 3.]]) matrix2 = tf.constant([[2.],[2.]]) print( tf.matmul(matrix1, matrix2) )