cupy的簡介
CuPy: NumPy-like API accelerated with CUDA。CuPy是NumPy相容多元數組在CUDA上的實作。這個包(cupy)是一個源發行版。對于大多數使用者,建議使用預建構的wheel 分布。
CuPy是一個開源矩陣庫,使用NVIDIA CUDA加速。CuPy使用Python提供GPU加速計算。CUPY使用CUDA相關庫,包括 CuBLAS、CUDNN、Curand、CuoSver、CuPaSeSE、Cufft和NCCL,以充分利用GPU架構。圖中顯示庫比比紐比加速。他們中的大多數人在使用CuPy開箱即用的GPU上表現良好。CuPy加速了一些超過100倍的操作,你可以在單個GPU中閱讀原始的基準文章CuPy加速(RAPIDS AI)。
cupy的安裝
pip install cupy
# For CUDA 8.0
pip install cupy-cuda80
# For CUDA 9.0
pip install cupy-cuda90
# For CUDA 9.1
pip install cupy-cuda91
# For CUDA 9.2
pip install cupy-cuda92
# For CUDA 10.0
pip install cupy-cuda100
# For CUDA 10.1
pip install cupy-cuda101
# Install CuPy from source
cupy的使用方法
import cupy as cp
x = cp.arange(6).reshape(2, 3).astype('f')
print(x, x.sum(axis=1))
>>> x = cp.arange(6, dtype='f').reshape(2, 3)
>>> y = cp.arange(3, dtype='f')
>>> kernel = cp.ElementwiseKernel(
... 'float32 x, float32 y', 'float32 z',
... '''if (x - 2 > y) {
... z = x * y;
... } else {
... z = x + y;
... }''',
... 'my_kernel')
>>> kernel(x, y)
array([[ 0., 2., 4.],
[ 0., 4., 10.]], dtype=float32)