社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Cupy: 让python快到飞起

气象学家 • 4 年前 • 639 次点击  

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

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

        尽管如此,即使加速,Numpy也只能在CPU上运行。由于CPU通常具有8个核心或更少,因此并行处理量以及因此可以实现的加速量是有限的。而cupy则可以调用GPU进行计算加速。


1.安装:

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

conda install -c conda-forge cupy


2.使用:

        Cupy使用非常简单,只需将numpy替换成cupy即可,以下面代码为例,创建一个数组,对它进行简单的乘除加减,测试cupy和numpy运行速度:
测试代码:
import numpy as npimport cupy as cpimport timestart_time = time.time()x = np.ones((1000,1000,1000))x= 5*xX2*= x*xend_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

pip install cupy-cuda101

或者:

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)进行授权。气象学家公众号转载信息旨在传播交流,其内容由作者负责,不代表本号观点。文中部分图片来源于网络,如涉及作品内容、版权和其他问题,请后台联系小编处理。





往期推荐

 ERA5-Land陆面高分辨率再分析数据(~16TB)

★ ERA5常用变量再分析数据(~11TB)

 TRMM 3B42降水数据(Daily/3h)

 科研数据免费共享: GPM卫星降水数据

 气象圈子有人就有江湖,不要德不配位!

 请某气象公众号不要 “以小人之心,度君子之腹”!

 EC数据商店推出Python在线处理工具箱

★ EC打造实用气象Python工具Metview

★ 机器学习简介及在短临天气预警中的应用

★ AMS推荐|气象学家-海洋学家的Python教程

★ Nature-地球系统科学领域的深度学习及理解

★ 采用神经网络与深度学习来预报降水、温度


   欢迎加入气象学家交流群   

请备注:姓名/昵称-单位/学校-研究方向

未备注的不通过申请



❤️ 「气象学家」 点赞

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/136882