ChainerでNVIDIAのGPUをWindows で使う方法

chainer

pip install chainer

CUDA toolkit

CUDA Toolkit – Free Tools and Training | NVIDIA Developer

インストーラーをダウンロードしインストールします

cuDNN

CUDA Deep Neural Network (cuDNN) | NVIDIA Developer

インストーラーをダウンロードしインストールします

Installing cuDNN on Windows — NVIDIA cuDNN

cupy_cuda12x-13.3.0の場合

CuPyインストールした後cuDNN8.8.1をインストールします

python -m cupyx.tools.install_library --library cudnn --cuda 12x --prefix D:/WinPython/cuda_lib

念のため次もインストール

python -m cupyx.tools.install_library --library cutensor --cuda 12x --prefix D:/WinPython/cuda_lib

インストール先を指定した場合は"D:\WinPython\python-3.10.11.amd64\Lib\site-packages\cupy_environment.py"のソースコードを修正

def get_cupy_cuda_lib_path():
        return os.path.expanduser('D:/WinPython/cuda_lib')

The default $CUPY_CUDA_LIB_PATH is ~/.cupy/cuda_lib.

C:\Users\User\.cupy\cuda_lib

CuPy

CuPyは、NVIDIAのGPUを利用して高速な数値計算を行うためのPythonライブラリ。NumPyと互換性があるから、NumPyコードをほぼそのまま使って、GPUでの計算に移行できます。これは、ディープラーニングや科学計算で特に便利。NumPyのインターフェースを維持しつつ、CUDAを利用してパフォーマンスを大幅に向上させることができます。

CuPy: NumPy & SciPy for GPU

pip install cupy-cuda12x

Could not locate cudnn_cnn_infer64_8.dll. Please make sure it is in your library path!

zlib.dllをzlibwapi.dllにリネームしcudnn64_8.dllを配置したフォルダに配置します。

確認

IDLEX.exe起動します

import chainer
chainer.print_runtime_info()

結果

Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import chainer
>>> chainer.print_runtime_info()
Platform: Windows-10-10.0.22631-SP0
Chainer: 7.8.1
ChainerX: Not Available
NumPy: 1.24.2
CuPy:
  OS                           : Windows-10-10.0.22631-SP0
  Python Version               : 3.10.11
  CuPy Version                 : 13.3.0
  CuPy Platform                : NVIDIA CUDA
  NumPy Version                : 1.24.2
  SciPy Version                : 1.10.1
  Cython Build Version         : 0.29.36
  Cython Runtime Version       : 0.29.34
  CUDA Root                    : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6
  nvcc PATH                    : C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\bin\nvcc.EXE
  CUDA Build Version           : 12060
  CUDA Driver Version          : 12060
  CUDA Runtime Version         : 12060 (linked to CuPy) / 12060 (locally installed)
  CUDA Extra Include Dirs      : ['D:\\WinPython\\python-3.10.11.amd64\\lib\\site-packages\\nvidia\\cuda_runtime\\include']
  cuBLAS Version               : 120603
  cuFFT Version                : 11300
  cuRAND Version               : 10307
  cuSOLVER Version             : (11, 7, 1)
  cuSPARSE Version             : 12504
  NVRTC Version                : (12, 6)
  Thrust Version               : 200600
  CUB Build Version            : 200600
  Jitify Build Version         : 1a0ca0e
  cuDNN Build Version          : 8801
  cuDNN Version                : 8801
  NCCL Build Version           : None
  NCCL Runtime Version         : None
  cuTENSOR Version             : 20002
  cuSPARSELt Build Version     : None
  Device 0 Name                : NVIDIA GeForce RTX 3060 
  Device 0 Compute Capability  : 86
  Device 0 PCI Bus ID          : 0000:01:00.0
iDeep: Not Available
>>> 

ほか

pip install cutensor-cu12
pip install nvidia-cuda-runtime-cu12
pip install nvidia-cudnn-cu12

CuPyで違うバージョンのcuDNNを入れるためには

“D:\WinPython\python-3.10.11.amd64\Lib\site-packages\cupy.data_wheel.json"

{"cuda": "12.x", "packaging": "pip", "cutensor": {"version": "2.0.1", "filenames": ["cutensor.dll"]}, "cudnn": {"version": "8.8.1", "filenames": ["cudnn64_8.dll", "cudnn_ops_infer64_8.dll", "cudnn_ops_train64_8.dll", "cudnn_cnn_infer64_8.dll", "cudnn_cnn_train64_8.dll", "cudnn_adv_infer64_8.dll", "cudnn_adv_train64_8.dll"]}}

これを変更します

Python

Posted by eightban