Windows11 WSL2 Ubuntu Python

Numpy を GPU で動作させる

NVIDIA GPU では CUDA ソフトウェアを用いて GPGPU(GPU による汎用計算)が可能です。
CuPy はこの CUDA と Python の橋渡しをしてくれます。
Numpy の多くの関数をサポートしているので、それとほとんど変わらない書き方で GPGPU が実現できます。
GPU 上で計算するためには、NVIDIAが提供している「CUDA」が必要になります。
現在(20230719)までに,Cupy が CUDA12.1 に対応できておらず、CUDA12.0までの対応になっていることに 留意する必要があります。
Cupyのインストール・環境構築[Windows10]
numpyを使ったプログラムをGPUで動かす方法
Conda-Forge から CuPy をインストールする
が参考になります。
まずは Cupy のインストールファイルを探します。

yasuhiro@ysenba:~$ conda search -c conda-forge cupy
Loading channels: done
# Name  Version     Build    Channel
cupy     4.0.0  py27he3f55b6_0  pkgs/main
・・・・    ・・・・・・・・・・・・・・・・・・・・・・  ・・・・・・・・・
cupy    10.4.0  py39hc3c280e_0  conda-forge
cupy    10.5.0 py310h036c549_0  conda-forge
cupy    10.5.0 py310h036c549_1  conda-forge
cupy    10.5.0 py310h5a5d52f_0  conda-forge
cupy    10.5.0 py310h5a5d52f_1  conda-forge
cupy    10.5.0 py310h9130c2b_0  conda-forge
cupy    10.5.0 py310h9130c2b_1  conda-forge
cupy    10.5.0 py310h9216885_0  conda-forge
cupy    10.5.0 py310h9216885_1  conda-forge
cupy    10.5.0  py37h0c11245_0  conda-forge
cupy    10.5.0  py37h0c11245_1  conda-forge
cupy    10.5.0  py37h17e6d27_0  conda-forge
cupy    10.5.0  py37h17e6d27_1  conda-forge
・・・・    ・・・・・・・・・・・・・・・・・・・・・・  ・・・・・・・・・
cupy    11.3.0 py310h036c549_0  conda-forge
cupy    11.3.0 py310h036c549_1  conda-forge
cupy    11.3.0 py310h5a5d52f_0  conda-forge
cupy    11.3.0 py310h5a5d52f_1  conda-forge
cupy    11.3.0 py310h9130c2b_0  conda-forge
cupy    11.3.0 py310h9130c2b_1  conda-forge
cupy    11.3.0 py310h9216885_0  conda-forge
cupy    11.3.0 py310h9216885_1  conda-forge
cupy    11.3.0 py311h2ee233c_1  conda-forge
cupy    11.3.0 py311ha38b01b_1  conda-forge
cupy    11.3.0 py311hb8138a5_1  conda-forge
cupy    11.3.0 py311hfac1e59_1  conda-forge
cupy    11.3.0  py38h405e1b6_0  conda-forge
cupy    11.3.0  py38h405e1b6_1  conda-forge
cupy    11.3.0  py38h69964f1_0  conda-forge
cupy    11.3.0  py38h69964f1_1  conda-forge
cupy    11.3.0  py38ha04ee3d_0  conda-forge
cupy    11.3.0  py38ha04ee3d_1  conda-forge
cupy    11.3.0  py38heb07aac_0  conda-forge
cupy    11.3.0  py38heb07aac_1  conda-forge
cupy    11.3.0  py39h3d061b5_0  conda-forge
cupy    11.3.0  py39h3d061b5_1  conda-forge
cupy    11.3.0  py39h3da55b9_0  conda-forge
cupy    11.3.0  py39h3da55b9_1  conda-forge
cupy    11.3.0  py39h505621e_0  conda-forge
cupy    11.3.0  py39h505621e_1  conda-forge
cupy    11.3.0  py39hc3c280e_0  conda-forge
cupy    11.3.0  py39hc3c280e_1  conda-forge
cupy    11.4.0 py310h036c549_0  conda-forge
・・・・    ・・・・・・・・・・・・・・・・・・・・・・  ・・・・・・・・・
cupy    12.0.0  py39hc3c280e_0  conda-forge
cupy    12.0.0  py39hc3c280e_1  conda-forge
cupy    12.0.0  py39hc3c280e_2  conda-forge
cupy    12.0.0  py39hc3c280e_3  conda-forge
cupy    12.0.0  py39hc3c280e_4  conda-forge
cupy    12.1.0 py310h3181149_0  conda-forge
cupy    12.1.0 py310h4a36445_0  conda-forge
cupy    12.1.0 py310h53f8385_0  conda-forge
cupy    12.1.0 py310h86dfe5f_0  conda-forge
cupy    12.1.0 py310hfc31588_0  conda-forge
cupy    12.1.0 py311h04b4b91_0  conda-forge
cupy    12.1.0 py311h287edf0_0  conda-forge
cupy    12.1.0 py311h2bc1b5c_0  conda-forge
cupy    12.1.0 py311ha81f1d1_0  conda-forge
cupy    12.1.0 py311hce4a69c_0  conda-forge
cupy    12.1.0  py38h1a8ea90_0  conda-forge
cupy    12.1.0  py38hb15ac9a_0  conda-forge
cupy    12.1.0  py38hc5c2c28_0  conda-forge
cupy    12.1.0  py38hcae7217_0  conda-forge
cupy    12.1.0  py38hee744ae_0  conda-forge
cupy    12.1.0  py39h1cb1add_0  conda-forge
cupy    12.1.0  py39h468c05e_0  conda-forge
cupy    12.1.0  py39h5eb9bd4_0  conda-forge
cupy    12.1.0  py39h98de0c3_0  conda-forge
cupy    12.1.0  py39hc7c1505_0  conda-forge

私のconda 環境インストールされている python3 の版数は
Python 3.10.6
でしたので、py310 に着目します。
ルート領域にインストールされている cuda は
cuda 12.2
これにはどうもに対応していない様子。
一方、私の conda 環境にインストールされているのは
cudatoolkit 11.3.1
これにはどうも
cupy 11.3.0 py310h9216885_1 conda-forge
が対応しているようです。

Cupy インストール

とりあえずバージョン指定なしで copy をインストールします。
yamada@yama:~$ conda install -c conda-forge cupy=11.3.0 py310h9216885_1
yamada@yama:~$ conda install cupy
は使わず、
yamada@yama:~$ conda update conda
yamada@yama:~$ conda install -c conda-forge cupy
とします。
30分ぐらい時間がかかります。
どうもバージョン指定しないとインストールに時間がかかるようです。
最適版数を探すのに時間がかかるようです。
インストールバージョンが分かる場合はバージョン指定をしましょう。
これで python 版数に見合った cupy が conda 仮想環境にインストールされます。
ただ、TensorFlow GPU と CuPy の CUDA の適応バージョンが違う場合、低いバージョンに揃えられてしまうようです。
$ conda list
でインストール結果を確認してみました。

yamada@yama:~$ conda list
# packages in environment at /home/yamada/miniconda3:
#
# Name                   Version  Build            Channel
_libgcc_mutex            0.1         conda_forge   conda-forge
_openmp_mutex            4.5          2_kmp_llvm   conda-forge
_tflow_select            2.1.0                     gpu
・・・・・・・・・・・・・            ・・・・・・   ・・・・・・・・・・・      ・・・・・
conda                    23.7.2   py310hff52083_0  conda-forge
conda-content-trust      0.1.3    py310h06a4308_0
conda-package-handling   2.2.0    py310h06a4308_0
conda-package-streaming  0.9.0    py310h06a4308_0
contourpy                1.0.5    py310hdb19cb5_0
cryptography             39.0.1   py310h9ce1e76_0
cudatoolkit              11.3.1        h2bc3f7f_2
cudnn                    8.2.1.32      h86fa8c9_0  conda-forge
cupti                    11.3.1                 0
cupy                     10.5.0   py310h9216885_0  conda-forge
cycler                   0.11.0      pyhd3eb1b0_0
dbus                     1.13.18       hb2f20db_0
expat                    2.4.9         h6a678d5_0
fastrlock                0.8      py310hd8f1fbe_3  conda-forge
flatbuffers              2.0.0         h2531618_0
・・・・・・・・・・・・・            ・・・・・・   ・・・・・・・・・・・      ・・・・・

cupy 11.3.0 がインストールされるのかと思っていましたが、
cupy 10.5.0 py310h9216885_0 conda-forge
がインストールされました。
バージョン指定しないで良かったです。
また、
cudatoolkit 11.3.1
cudnn 8.2.1.32
は変化なしでした。

引き続き cupy がうまくインストールされたか動作確認します。


  • Cupy インストール動作確認 に進む
  • TensorFlow-GPU, cuDNN, CUDA バージョン対応 に戻る
  • TensorFlow インストール確認Ⅱ に戻る
  • TensorFlow インストール確認Ⅰ に戻る
  • TensorFlow インストール版数確認 に戻る
  • cuDNN インストール確認 に戻る
  • cuDNN 概要 に戻る
  • CUDA Toolkit のインストール に戻る
  • WSL2 Ubuntu Python GPU 環境 に戻る
  • WSL2 Ubuntu Python 概要 に戻る
  • 70VPS に戻る