Odrętwienie
Oryginalni autorzy | Analiza kontinuum |
---|---|
Deweloperzy | Projekt społeczności |
Pierwsze wydanie | 15 sierpnia 2012 |
Wersja stabilna | 0,56,4 / 4 listopada 2022
|
Wersja podglądu | 0.54.0rc2 / 16 lipca 2021
|
Magazyn | |
Napisane w | Pyton , C |
System operacyjny | Międzyplatformowe |
Typ | Obliczenia techniczne |
Licencja | BSD 2-klauzula |
Strona internetowa |
Numba to kompilator JIT typu open source , który tłumaczy podzbiór Pythona i NumPy na szybki kod maszynowy przy użyciu LLVM za pośrednictwem pakietu Python llvmlite. Oferuje szereg opcji równoległości kodu Pythona dla procesorów i procesorów graficznych, często z niewielkimi zmianami w kodzie.
Numba została założona przez Travisa Oliphanta w 2012 roku i od tego czasu jest aktywnie rozwijana na https://github.com/numba/numba z częstymi wydaniami. Projekt jest prowadzony przez programistów z Anaconda, Inc., przy wsparciu DARPA , Gordon and Betty Moore Foundation , Intel , Nvidia i AMD oraz społeczności współpracowników na GitHub .
Przykład
Numby można użyć, po prostu stosując dekorator numba.jit
do funkcji Pythona, która wykonuje obliczenia numeryczne:
0
import numba import losowo @numba . jit def monte_carlo_pi ( n_próbek : int ) -> float : """Monte Carlo""" acc = dla i w zakresie ( n_próbek ): x = losowo . losowy () y = losowy . losowo () jeśli ( x
** 2 + y ** 2 ) < 1,0 : acc += 1 return 4,0 * acc / n_próbek
Kompilacja just-in-time odbywa się w sposób przezroczysty, gdy funkcja jest wywoływana:
>>> monte_carlo_pi ( 1000000 ) 3.14
Witryna Numba pod adresem https://numba.pydata.org zawiera wiele innych przykładów, a także informacje o tym, jak uzyskać dobre wyniki z Numby.
Wsparcie GPU
Numba może kompilować funkcje Pythona do kodu GPU. Początkowo dostępne są dwa backendy:
-
Nvidia CUDA , zobacz
numba .pydata .org /numba-doc /dev /cuda -
AMD ROCm HSA
, numba.pydata.org/numba-doc/dev/roc _ _ _ _ zobacz
Od wydania 0.56.4 AMD ROCm HSA został oficjalnie przeniesiony do stanu nieobsługiwanego i utworzono dla niego osobny kod pośredniczący repozytorium, patrz https://github.com/numba/numba-rocm
Alternatywne podejścia
Numba to jedno podejście do przyspieszenia Pythona poprzez kompilację określonych funkcji zawierających kod Pythona i Numpy. Istnieje wiele alternatywnych podejść do szybkich obliczeń numerycznych w Pythonie, takich jak Cython , TensorFlow , PyTorch , Chainer , Pythran i PyPy .