跳转到内容

Numba

本页使用了标题或全文手工转换
维基百科,自由的百科全书
Numba
原作者Continuum Analytics
開發者社区计划
首次发布2012年8月15日,​12年前​(2012-08-15
当前版本0.60.0[1](2024年1月13日,​10個月前​(2024-01-13
预览版本0.61.0dev0(2024年5月15日,​6個月前​(2024-05-15
源代码库 編輯維基數據鏈接
编程语言Python, C
操作系统跨平台
类型科学计算英语List of numerical analysis software
许可协议
  • 2句版BSD许可证
編輯維基數據鏈接
网站numba.pydata.org

Numba是开源JIT编译器,它通过llvmlite绑定包,使用LLVM将包括很多NumPy函数的聚焦数值计算的Python子集,翻译成快速的机器码。它为在CPU和GPU上并行化Python代码提供了大量选项,而经常只需要微小的代码变更。

Numba由Travis Oliphant英语Travis Oliphant在2012年开创并在github[2]上活跃开发而经常有新的发行。这个计划由Anaconda公司的开发者驱动,并受到DARPA、Gordon和Betty Moore基金会、IntelNvidiaAMD和GitHub上的社区贡献者的支持。

例子

[编辑]

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

import numba
import random

@numba.jit
def 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的网站[3]包含了更多的例子,还有如何从Numba获得更好的性能的信息。

GPU支持

[编辑]

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

替代方式

[编辑]

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

引用

[编辑]
  1. ^ Releases · numba/numba. GitHub. [2024-11-01]. (原始内容存档于2022-08-31) (英语). 
  2. ^ github页面存档备份,存于互联网档案馆
  3. ^ 网站页面存档备份,存于互联网档案馆
  4. ^ Numba for CUDA GPUs. [2020-09-29]. (原始内容存档于2019-04-16). 
  5. ^ Numba for AMD ROC GPUs. [2020-09-29]. (原始内容存档于2019-04-16). 
  6. ^ Pythran页面存档备份,存于互联网档案馆
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy