トップページインストール,使い方Ubuntu, WSL2WSL2 上の Ubuntu での NVIDIA CUDA ツールキット, NVIDIA cuDNN, PyTorch, TensorFlow 2.7 のインストールと動作確認(Windows 上)

WSL2 上の Ubuntu での NVIDIA CUDA ツールキット, NVIDIA cuDNN, PyTorch, TensorFlow 2.7 のインストールと動作確認(Windows 上)

WSL2 の Ubuntu 20.04 で GPU, TensorFlow, PyTorch を動かすための準備を説明する.

内容は,次の公式ページによるが,一部変更などを行っている.

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

GPU, TensorFlow, PyTorch を使いたい,そして,手元に Windows マシンはあるのだけど,Ubuntu で動かしたい(Ubuntu でしか動かない)というときに便利.

WSL2 のインストールについては: 別ページで説明している.)

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

目次

  1. 前準備
  2. PyTorch のインストール
  3. TensorFlow 2.7, numpy, pillow, pydot, matplotlib, keras, opencv-python (WSL2 の Ubuntu 上)
  4. 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 を使う手順を説明します.

  1. 次の URL で,Windows 10 Insider Program に登録する.

    https://insider.windows.com/en-us/getting-started#register

  2. Windows の設定の「更新とセキュリティ」で,「Windows Insider Programの設定」をクリック
  3. 「診断&フィードバックの設定に移動し、オプションの診断データをオンにします。」が表示される場合には,画面の指示に従い,オプションの診断データをオンにする.
  4. 設定を行う.「Insiderの設定を選択してください」では,「Devチャネル」を選ぶ.
  5. 画面の指示に従い,再起動する.
  6. 次に,設定で「Windows Update」を選び.更新を行う.これにより,Insider Preview の機能がインストールされる.

WSL2 と Ubuntu のインストール

手順は 別ページで説明している.

WSL2 での Ubuntu のバージョン確認と更新

  1. Windows で,コマンドプロンプトを実行.
  2. インストール済みの Ubuntu のカーネルのバージョンの表示
  3. 表示されたバージョンが,5系列であることを確認.4系列である場合には, 4.9.121のように,121 以上になっていることを確認.

    4系列を使っていて,121 より小さい値のときは,更新する必要がある.

    [image]

    更新の手順は次の通り.

    1. コマンドプロンプトを管理者として開き「wsl --update」あるいは「wsl -d <ディストリビューション名> --update」を実行

      [image]
    2. 表示の指示に従い,「wsl --shutdown」を実行

      [image]

    ※ 「wsl --update」あるいは「wsl -d <ディストリビューション名> --update」を実行を実行したが, 「利用できる更新ない」というとき(下図のように)

    [image]
    は,次の手順を行う.
    1. 「Windows Update」の設定で,「詳細オプション(追加の更新コントールと設定)」を開く.

      [image]
    2. Windows の更新時に他の Microsoft 製品の更新プログラムを受け取る」をオンにする.

      [image]
    3. そして,Windows Update で「更新プログラムのチェック」をクリックし,更新する.

      [image]
    4. 「wsl --update」あるいは「wsl -d <ディストリビューション名> --update」を再度実行する.

プレビュー版の NVIDIA ドライバのインストール

Ubuntu のインストールが終わった後, プレビュー版の NVIDIA ドライバを,Windows マシンにインストールする.

これは,Windows マシンにインストールするのであって,WSL上の Ubuntu でのインストール作業ではない.

以前,WSL2 の Ubuntu で GPU を動かすとき, プレビュー版の NVIDIA ドライバのインストールが必要だったので,案内している.

  1. Windows で,コマンドプロンプトを実行.
  2. コマンドプロンプトで,次のコマンドを実行し,すべての Linux サブシステムをシャットダウンしておく.
    wsl --shutdown
    

    [image]
  3. 次のWeb ページからダウンロード

    利用条件などは,利用者側で確認すること.

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

    [image]
  4. ダウンロードしたファイルを実行して,インストールする

PyTorch のインストール

  1. Windows で,コマンドプロンプトを実行.
  2. WSL で Ubuntu を起動
  3. Python3 開発用ファイル,pip, setuptools のインストール
    sudo apt -y update
    sudo apt -y install python3-dev python3-pip python3-setuptools
    
  4. PyTorch の Web ページを開く

    https://pytorch.org/

  5. コマンドを表示させる

    次のように選ぶと,その下に,ランタイムコマンドが表示される

  6. 「Run this Command」のところに表示されたコマンドを実行

    頭には「sudo」を付ける.

    [image]
  7. Python でPyTorch のバージョン確認

    バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.

    python3 -c "import torch; print( torch.__version__ )"
    

    [image]
  8. PyTorch で GPU が使用できるかの確認

    次の Python プログラムを実行

    python3 -c "import torch; print(torch.__version__, torch.cuda.is_available())"
    

    [image]
  9. python3 で PyTorch の動作確認
    https://pytorch.org/get-started/locally/ に記載の Python プログラムを動かしてみる

    import torch
    x = torch.rand(5, 3)
    print(x)
    

    [image]

TensorFlow 2.7, numpy, pillow, pydot, matplotlib, keras, opencv-python (WSL2 の Ubuntu 上)

  1. Windows で,コマンドプロンプトを実行.
  2. WSL で Ubuntu を起動
  3. NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.5 のインストール

    TensorFlow 2.7 の動作に使う.

    Ubuntu 20.04 で NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.5 のインストールを行う.

    1. NVIDIA CUDA パッケージレポジトリで,ファイル名を確認

      NVIDIA CUDA パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/cuda/repos/

      Ubuntu 20.04 の場合は,https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ で確認.

      .pub」という名前の付いたファイルを確認.

      [image]

      cuda-ubuntu....pin」という名前の付いたファイルを確認.

      [image]
    2. NVIDIA CUDA パッケージレポジトリを,Ubuntu システムに追加

      このとき,いま,確認したファイル名を指定すること

      端末で,次のように操作する.

      Ubuntu 20.04 の場合は,次の操作により,NVIDIA CUDA のパッケージレポジトリが Ubuntu システムに追加される.

      sudo wget -O /etc/apt/preferences.d/cuda-repository-pin-600 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
      sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub
      sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
      

      [image]
    3. インストールできる CUDA のバージョンの確認
      apt-cache search cuda-11
      

      [image]
    4. NVIDIA CUDA パッケージレポジトリを用いて,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.5インストール

      Ubuntu 20.04 の場合は,次の操作により,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.5 がインストールされる.

      端末で,次のコマンドを実行する.

      sudo apt -y update
      sudo apt -y install cuda-11-5
      

      [image]
    5. NVIDIA CUDA ツールキットにパスを通す設定

      端末で,次のコマンドを実行する.

      export CUDA_PATH=/usr/local/cuda-11.5
      echo 'export CUDA_PATH=/usr/local/cuda-11.5' >> ${HOME}/.bashrc
      export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64:${LD_LIBRARY_PATH}
      echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64:${LD_LIBRARY_PATH}' >> ${HOME}/.bashrc
      export PATH=/usr/local/cuda-11.5/bin:${PATH}
      echo 'export PATH=/usr/local/cuda-11.5/bin:${PATH}' >> ${HOME}/.bashrc
      

      [image]
    6. インストールできたことの確認のため,CUDA ツールキットのバージョンを確認

      端末で,次のコマンドを実行する.

      cat /usr/local/cuda-11.5/version.json
      

      [image]
  4. NVIDIA cuDNN のインストール

    NVIDIA 機械学習パッケージレポジトリからダウンロードして,インストールするという手順を説明する.

    NVIDIA 機械学習パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/machine-learning/repos/

    1. NVIDIA 機械学習パッケージレポジトリで,ファイル名を確認

      NVIDIA 機械学習パッケージレポジトリの URL: https://developer.download.nvidia.com/compute/machine-learning/repos/

      Ubuntu 20.04 の場合は,https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/ で確認.

      スクロールして「nvidia-machine-learning-repo ・・・」を探す

      [image]
    2. NVIDIA 機械学習パッケージレポジトリを,Ubuntu システムに追加

      端末で,次のように操作する. このとき,確認したファイル名を指定すること

      cd /tmp
      wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/nvidia-machine-learning-repo-ubuntu2004_1.0.0-1_amd64.deb
      sudo dpkg -i nvidia-machine-learning-repo-ubuntu2004_1.0.0-1_amd64.deb
      sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
      sudo apt -y update
      

      [image]
    3. パッケージ名の確認
      apt-cache search cudnn
      

      [image]
    4. いま確認したパッケージ名を指定して,NVIDIA cuDNN のインストール
      sudo apt -y update
      sudo apt -y install libcudnn8 libcudnn8-dev
      

      [image]
    5. インストールされたパッケージの確認
      dpkg -l | grep cudnn 
      

      [image]
  5. Python3 開発用ファイル,pip, setuptools のインストール
    sudo apt -y update
    sudo apt -y install python3-dev python3-pip python3-setuptools
    
  6. 使用する Python のバージョンの確認
    python3 --version
    

    [image]
  7. パッケージのアンインストール操作

    ※ トラブルの可能性を減らすために,次の操作でアンインストールを行っておく.

    sudo apt -y remove python3-keras
    sudo pip3 uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow-text tf-models-official tf_slim tensorflow_datasets tensorflow-hub keras keras-tuner keras-visualizer
    

    [image]
  8. TensorFlow の前提パッケージのインストール
    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
    
  9. TensorFlow 2.7, 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
    
  10. その結果,エラーメッセージが出ていないことを確認.

    [image]
  11. TensorFlow のバージョン確認

    端末で,次のコマンドを実行する.

    バージョン番号が表示されれば OK.下の図とは違うバージョンが表示されることがある.

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

    [image]
  12. GPU が認識できてるかの確認

    TensorFlow が GPU を認識できているかの確認は,端末で,次を実行して行う.

    python3 -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
    

    「device_type: "GPU"」があれば,GPUが認識できている.

    [image]

    動かない場合には, 次の公式ページが解決の手がかりになる可能性がある.

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

TensorFlow のプログラム例

https://github.com/tensorflow/tensorflow に記載のサンプルプログラムを実行してみる

Python プログラムの実行

※ Python プログラムを動かすために, WSL2Ubuntu では「python3」コマンドを使う. あるいは, PyCharmなどにある Python コンソールも便利である.