如何将 Numpy 加速 700 倍?用 CuPy 呀
来源:机器之心
专属福利 👉点击领取:最全Python资料合集
在开始使用 CuPy 之前,用户可以通过 pip 安装 CuPy 库:
pip install cupy
i7–8700k CPU 1080 Ti GPU 32 GB of DDR4 3000MHz RAM CUDA 9.0
CuPy 安装之后,用户可以像导入 Numpy 一样导入 CuPy:
import numpy as npimport cupy as cpimport time
在接下来的编码中,Numpy 和 CuPy 之间的切换就像用 CuPy 的 cp 替换 Numpy 的 np 一样简单。如下代码为 Numpy 和 CuPy 创建了一个具有 10 亿 1』s 的 3D 数组。为了测量创建数组的速度,用户可以使用 Python 的原生 time 库:
### Numpy and CPUs = time.time()*x_cpu = np.ones((1000,1000,1000))*e = time.time()print(e - s)### CuPy and GPUs = time.time()*x_gpu = cp.ones((1000,1000,1000))*e = time.time()print(e - s)
比如在数组中做一些数学运算。这次将整个数组乘以 5,并再次检查 Numpy 和 CuPy 的速度。
### Numpy and CPUs = time.time()*x_cpu *= 5*e = time.time()print(e - s)### CuPy and GPUs = time.time()*x_gpu *= 5*e = time.time()print(e - s)
数组乘以 5 数组本身相乘 数组添加到其自身
### Numpy and CPUs = time.time()*x_cpu *= 5x_cpu *= x_cpux_cpu += x_cpu*e = time.time()print(e - s)### CuPy and GPUs = time.time()*x_gpu *= 5x_gpu *= x_gpux_gpu += x_gpu*e = time.time()print(e - s)
热门推荐