天天看點

Py之cupy:cupy的簡介、安裝、使用方法之詳細攻略

cupy的簡介

Py之cupy: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)