金子邦彦研究室インストールUbuntu, WSL2WSL2 上の Ubuntu での NVIDIA CUDA ツールキット, NVIDIA cuDNN, PyTorch, TensorFlow 2.11 のインストールと動作確認(Windows 上)

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 のインストールについては: 別ページ »で説明)

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

目次

  1. 前準備
  2. PyTorch のインストール
  3. TensorFlow 2.11, 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 の機能がインストールされる.

WSL 2 と Ubuntu のインストール

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

WSL 2 での 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 でのインストール作業ではない.

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

    [image]
  3. グラフィックス・カードの種類が分からないときは,確認しておく.

    hwinfo (URL: https://www.hwinfo.com) を使って調べることができる.

  4. NVIDIA ドライバの利用条件などは,次のページで,利用者で確認すること.

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

  5. NVIDIA ドライバは,次のWeb ページからダウンロード

    NVIDIA ドライバのダウンロードページ】

    https://www.nvidia.co.jp/Download/index.aspx?lang=jp

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

    [image]

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. パソコンの Web ブラウザで,PyTorch の Web ページを開く

    https://pytorch.org/

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

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

    そして,「Run this Command」のところに表示されるコマンドを確認

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

    頭には「sudo」を付ける.実行するコマンドは「sudo pip3 ....」のようになる.

    [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.11, numpy, pillow, pydot, matplotlib, keras, opencv-python (WSL2 の Ubuntu 上)

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

    TensorFlow 2.11 の動作に使う.

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

    1. 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」という名前の付いたファイルを確認.

      [image]

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

      [image]
    2. 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/ /"
      

      [image]
    3. NVIDIA CUDA ツールキットに関するパッケージ名の確認
      sudo apt -y update
      apt-cache search cuda-11
      

      [image]
    4. 今度は,NVIDIA cudnn に関するパッケージ名の確認
      sudo apt -y update
      apt-cache search cudnn
      

      [image]
    5. 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
      

      [image]
      (以下省略)
    6. 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
      

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

      次のコマンドを実行.

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

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

      古いバージョンの Ubuntu である Ubuntu 20.04 や Ubuntu 18.04 で,下に書いた手順でうまくいかないような場合は,NVIDIA 機械学習パッケージレポジトリを利用できる場合もある.参考にしてください.

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

    9. 再度,NVIDIA cudnn に関するパッケージ名の確認
      sudo apt -y update
      apt-cache search cudnn
      

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

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

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

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

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

    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
    

    [image]
  7. 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
    

    [image]
    (以下省略)
  8. 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
    
  9. その結果,エラーメッセージが出ていないことを確認.

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

    次のコマンドを実行.

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

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

    [image]
  11. 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 プログラムを動かすために, WSL 2Ubuntu では「python3」コマンドを使う. あるいは, PyCharmなどにある Python コンソールも便利である.