Python GPU4:CuPy

Python GPU4:CuPy

0. 准备

  • 安装好CUDA

1. 查看CUDA版本

CUDA版本是11.4
notion image

2. 安装CuPy

根据上面查询到的CUDA,安装对应版本。
notion image
# 先升级setuptools和pip python -m pip install -U setuptools pip # 安装对应版本 pip install cupy-cuda114

3. 测试

3.1 CuPy使用测试

import cupy as cp x = cp.arange(6).reshape(2, 3).astype('f') print(x, x.sum(axis=1))
输出结果,成功使用
[[0. 1. 2.] [3. 4. 5.]] [ 3. 12.]

3.2 CuPy与Numpy对比

import numpy as np import cupy as cp import time start = time.time() a = np.ones(10**7) end = time.time() start_2 = time.time() b = cp.ones(10**7) end_2 = time.time() # CPU interval_1 = end - start # GPU interval_2 = end_2 - start_2 print(interval_1, interval_2, interval_2 / interval_1, sep='\n')
输出结果
  • 发现在1000万数据规模时,创建一个(1, 10**7)的数组,numpy速度远快于cupy,大约是cupy的32倍。
0.021903276443481445 0.7188787460327148 32.82060325028029
将创建的规模改为1亿,即10**8之后,结果如下:
  • 可见此时numpy的速度和cupy差不多,在数据规模大于1000万之后,随着数据规模的增加,cupy的速度提高远大于numpy
0.5466394424438477 0.5226936340332031 0.9561945104005108
本机GPU只有8G,由于显存容量的限制,最后测试一下8*10**8规模,此时cupy已经是numpy的2倍了。
1.7441284656524658 0.8960049152374268 0.5137264444005493