前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让python快到飞起-cupy

让python快到飞起-cupy

作者头像
自学气象人
发布2022-11-02 10:32:45
1.5K0
发布2022-11-02 10:32:45
举报
文章被收录于专栏:自学气象人

以下文章来源于气海同途 ,作者气海同途

Numpy一直是Python社区的礼物。它允许数据科学家,机器学习从业者和统计学家以简单有效的方式处理矩阵格式的大量数据。

就速度而言,Numpy本身就是Python的重要一步。每当你发现你的Python代码运行缓慢时,特别是如果你看到很多for循环,那么将数据处理转移到Numpy并让它的矢量化以最快的速度完成工作总是一个好主意!

尽管如此,即使加速,Numpy也只能在CPU上运行。由于CPU通常具有8个核心或更少,因此并行处理量以及因此可以实现的加速量是有限的。而cupy则可以调用GPU进行计算加速(因此,要想使用cupy库,请确保你的设备上配备了GPU卡)。

1.安装

使用conda安装(pip安装见文末)

代码语言:javascript
复制
conda install -c conda-forge cupy

2.使用

Cupy使用非常简单,只需将numpy替换成cupy即可,以下面代码为例,创建一个数组,对它进行简单的乘除加减,测试cupy和numpy运行速度:

测试代码

代码语言:javascript
复制
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

代码语言:javascript
复制
pip install cupy-cuda101

如果使用pip安装cupy的话,请注意选择自己的对应的cuda版本的cupy(用conda的话则无需担忧,具体原因可见:pip和conda,你会选择谁)。如何查看自己的cuda版本?

anaconda中输入conda list cudatoolkit:

对此,我们安装cuda10.1版本的cupy。

如果我们安装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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自学气象人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.安装
  • 2.使用
    • 测试代码
      • 测试numpy的速度
        • 测试cupy的速度(只需改import numpy as np为cupy即可)
          • 总结
          • 附:如何利用pip安装cupy
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档