Numpy一直是Python社区的礼物。它允许数据科学家,机器学习从业者和统计学家以简单有效的方式处理矩阵格式的大量数据。
就速度而言, Numpy本身就是Python的重要一步。每当你发现你的Python代码运行缓慢时,特别是如果你看到很多for循环,那么将数据处理转移到 Numpy并让它的矢量化以最快的速度完成工作总是一个好主意!
尽管如此,即使加速, Numpy也只能在CPU上运行。由于CPU通常具有8个核心或更少,因此并行处理量以及因此可以实现的加速量是有限的。而cupy则可以调用GPU进行计算加速。
1.安装:
使用c onda 安装 ( pip 安装见文末)
conda install -c conda-forge cupy
2.使用:
Cupy使用非常简单,只需将numpy替换成cupy即可,以下面代码为例,创建一个数组,对它进行简单的乘除加减,测试cupy和numpy运行速度: import numpy as np import cupy as cp import time start_time = time.time() x = np.ones((1000,1000,1000)) x= 5*x X2*= x*x end_time = time.time() print(end_time - start_time
首先我 们测试numpy的速度:
然后测试cupy速度,只需改import numpy as np为cupy即可:
我们发现用时得到了大大的减少; 是原来的0.4869s/0.001174s=415倍。
当然在实际运用过程中,cupy加速可能不会达到这么多倍,这取决于你代码里面矩阵运算的多少,如果numpy矩阵运算较少,那加速比自然就低,因此在写python脚本的时候应尽量多 用矩阵运算,方便提速 。
附: 如何利用pip安装cupy
或者:
pip3 install cupy-cuda101
注意选择自己的对应的cuda版本,如何选 择自己的cuda版本?anaconda中输入conda list :
对此,我们安装cuda10.1版本的(Pip3 install cupy-cuda101)
如果我们安装cupy-cuda116则导入会出现错误ImportError: DLL load failed while importing runtime: 找不到指定的模块。
或者使用出现错误,例如AttributeError: module 'cupy' has no attribute 'arange',因此需要装对应版本的cupy。
更多安装问题可以参考: https://docs.cupy.dev/en/latest/install.html#installing-cupy-from-conda-forge
声明: 欢迎转载、转发本号原创内容,可留言区留言或者后台联系小编( 微信:gavin7675 )进行授权。气象学家公众号转载信息旨在传播交流,其内容由作者负责,不代表本号观点。文中部分图片来源于网络,如涉及作品内容、版权和其他问题,请后台联系小编处理。
欢迎加入气象学家交流群
请备注: 姓名/昵称-单位/学校-研究方向
❤️ 「气象学家 」 点赞