python 指定gpu_加快Python算法的四个方法:Numba篇

Numba是一个即时Python编译器,通过@jit装饰器将Python代码转换为高效的机器码,支持numpy并加速计算密集型任务。文章介绍了Numba的工作原理,如何使用@jit、@vectorize进行函数加速,以及如何在GPU上运行Numba函数,提高计算速度。
摘要由CSDN通过智能技术生成

ebb89d508ad4fda0aaddc778da36ac60.png

444b475e623b9dec1a912e03bc99d67e.gif
相信大家在做一些算法经常会被庞大的数据量所造成的超多计算量需要的时间而折磨的痛苦不已,接下来我们围绕四个方法来帮助大家加快一下Python的计算时间,减少大家在算法上的等待时间。今天给大家介绍Numba这一块的内容。

1.简介


所以什么是Numba呢?

Numba是Python的即时编译器,也就是说当你调用Python函数时,你的全部或部分代码都会被计时转换成为机器码进行执行,然后它就会以你的本机机器码速度运行,Numba由Anaconda公司赞助,并得到了许多组织的支持。


使用Numba,你可以加速所有以集中计算的、计算量大的python函数(例如循环)的速度。它还支持numpy库!因此,你也可以在计算中使用numpy,并加快整体计算的速度,因为python中的循环非常慢。你还可以使用python标准库中的数学库的许多功能,例如sqrt等。


2.为什么选择Numba?


所以,为什么要选择Numba?特别是当存在有许多其他编译器,例如cython或任何其他类似的编译器,或类似pypy的东西时。


选择Numba的理由很简单,那就是因为你不需要离开使用Python编写代码的舒适区。是的,你没看错,你不需要为了加速数据的运行速度而改变你的代码,这与从具有类型定义的相似cython代码获得的加速相当。那不是更好么?


你只需要在函数周围添加一个熟悉的Python功能,也就是装饰器(包装器)。目前类的装饰器也在开发之中。


所以,你只需要添加一个装饰器就可以了。例如:
from numba import jit@jitdef function(x): # 循环或数值密集型的计算 return x
它看起来仍然像是纯python代码&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值