Numba 技术专题简介-编程知识网

简介

Numba原作者Continuum Analytics开发者社区计划首次发布2012年8月15日,​10年前​(2012-08-15)当前版本0.56.4 (2022年11月4日) 源代码库github.com/numba/numba 编程语言Python, C操作系统跨平台类型科学计算(英语:List of numerical analysis software)许可协议2句版BSD许可证 网站numba.pydata.orgNumba是开源的JIT编译器,它通过llvmlite绑定包,使用LLVM将包括很多NumPy函数的聚焦数值计算的Python子集,翻译成快速的机器码。它为在CPU和GPU上并行化Python代码提供了大量选项,而经常只需要微小的代码变更。Numba由Travis Oliphant(英语:Travis Oliphant)在2012年开创并在github上活跃开发而经常有新的发行。这个计划由Anaconda公司的开发者驱动,并受到DARPA、Gordon和Betty Moore基金会、Intel、Nvidia、AMD和GitHub上的社区贡献者的支持。

例子

Numba可以通过简单的在进行数值计算的Python函数上应用numba.jit修饰符来使用:

import numbaimport random@numba.jitdef monte_carlo_pi(n_samples: int):    acc = 0    for i in range(n_samples):        x = random.random()        y = random.random()        if (x**2 + y**2) < 1.0:            acc += 1    return 4.0 * acc / n_samples

即时编译在函数被调用时透明地进行:

>>> monte_carlo_pi(1000000)3.14

Numba的网站包含了更多的例子,还有如何从Numba获得更好的性能的信息。

GPU支持

Numba可以把Python函数编译成GPU代码。目前能获得二个后端:

NVIDIA CUDA

AMD ROCm(英语:ROCm) HSA(英语:Heterogeneous System Architecture)

替代方式

Numba是使Python快速的方法之一,它编译包含Python和Numpy代码的特定函数。存在很多用Python进行快速数值计算的替代方式,比如Cython、TensorFlow、PyTorch、Chainer(英语:Chainer)、Pythran和PyPy。

引用

^ Release 0.56.4. 2022年11月4日 . 

^ Releases · numba/numba. GitHub. . (原始内容存档于2022-08-31) (英语). 

^ github(页面存档备份,存于互联网档案馆)

^ 网站 (页面存档备份,存于互联网档案馆)

^ Numba for CUDA GPUs. . (原始内容存档于2019-04-16). 

^ Numba for AMD ROC GPUs. . (原始内容存档于2019-04-16). 

^ Pythran(页面存档备份,存于互联网档案馆)

Python 实现

CircuitPython(英语:CircuitPython)

CLPython(英语:CLPython)

CPython

Cython

Jython

IronPython

MicroPython

Numba

PyPy

Python for S60(英语:Python for S60)

Psyco

Stackless Python

Shed Skin(英语:Shed Skin)

Unladen Swallow

更多……

IDE

Boa

Eclipse

Eric Python IDE

IDLE

SPE(英语:Stani’s Python Editor)

Ninja-IDE

PyCharm

PyDev(英语:PyDev)

Aptana(英语:Aptana)

更多……

专题

Web服务器网关接口

软件列表

Python软件基金会

PyCon

<!–esi –>取自“https://www.7890.net/w/index.php?title=Numba&oldid=76652348”