numpyを使えばいいが、データが大規模になると、GPU計算させたくなる。そこで、cupyを使おうとなるが、躓いた点を紹介する。
Cupyインストール
そもそもNvidiaのドライバーを入れないといけない。
- ドライバーを入れるためには、Nvidiaコントロールパネルをインストール
-
第一関門: Studioドライバーをインストールorアップデート。
Game Readyのほうだと、後々エラー出たりしてダメで結局Studioにしたらできた。 - CUDA Toolkitをインストール。このとき、バージョンを覚えておく。
-
第二関門: コマンドプロンプト等を起動し、pip installする。このとき、必ず先ほどのCUDAのバージョンと合わせる。
pip install cupy-cuda12x
(バージョン12を入れたなら)
pip install cupy-cuda11x
(バージョン11を入れたなら)
なお、nvcc -V
でCUDAのバージョン情報を得られる。 - これでcupyのインストール完了
基本的には、"numpy"または"np"を"cupy"または"cp"に書き換えればGPU計算になる。
example.py
import cupy as cp
E = cp.eye(4) #4次元の単位行列
print(E)
リスト([1,2,3]など)とcupy配列とは計算できないので、注意!
一次元ベクトルとして使うなら、あらかじめcp.zeros(n)などでゼロベクトルを生成するのが手かも。
分量としてはこれだけだが、そこに気づくまでに何時間も試行錯誤する羽目になったので、こういった先人のエラー記事は大切なんだと気づいた...