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
pip install cupy
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)