Numba
原作者 | Continuum Analytics |
---|---|
開發者 | 社群計劃 |
首次釋出 | 2012年8月15日 |
目前版本 |
|
原始碼庫 | |
程式語言 | Python, C |
作業系統 | 跨平台 |
類型 | 科學計算 |
授權條款 |
|
網站 | numba |
Numba是開源的JIT編譯器,它通過llvmlite繫結包,使用LLVM將包括很多NumPy函式的聚焦數值計算的Python子集,翻譯成快速的機器碼。它為在CPU和GPU上並列化Python代碼提供了大量選項,而經常只需要微小的代碼變更。
Numba由Travis Oliphant在2012年開創並在github[3]上活躍開發而經常有新的發行。這個計劃由Anaconda公司的開發者驅動,並受到DARPA、Gordon和Betty Moore基金會、Intel、Nvidia、AMD和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的網站[4]包含了更多的例子,還有如何從Numba獲得更好的效能的資訊。
GPU支援
Numba可以把Python函式編譯成GPU代碼。目前能獲得二個後端:
替代方式
Numba是使Python快速的方法之一,它編譯包含Python和Numpy代碼的特定函式。存在很多用Python進行快速數值計算的替代方式,比如Cython、TensorFlow、PyTorch、Chainer、Pythran[7]和PyPy。
參照
- ^ Release 0.60.0. 2024年6月13日 [2024年6月22日].
- ^ Releases · numba/numba. GitHub. [2021-08-09]. (原始內容存檔於2022-08-31) (英語).
- ^ github(頁面存檔備份,存於網際網路檔案館)
- ^ 網站 (頁面存檔備份,存於網際網路檔案館)
- ^ Numba for CUDA GPUs. [2020-09-29]. (原始內容存檔於2019-04-16).
- ^ Numba for AMD ROC GPUs. [2020-09-29]. (原始內容存檔於2019-04-16).
- ^ Pythran(頁面存檔備份,存於網際網路檔案館)
|