Numba
Originalautor (en) | Kontinuumanalytics |
---|---|
Entwickler (en) | Gemeinschaftsprojekt |
Erstveröffentlichung | 15. August 2012 |
Stabile Version | 0,55,2[1] / 26. Mai 2022 |
Vorschau -Version | 0,54,0RC2 / 16 Juli 2021 |
Repository | |
Geschrieben in | Python, C |
Betriebssystem | Plattformübergreifend |
Typ | Technisches Computer |
Webseite | Numba |
Numba ist ein Open Source JIT -Compiler das übersetzt eine Teilmenge von Python und Numpy in einen schnellen Maschinencode verwendet Llvmüber das LLVMLite Python -Paket. Es bietet eine Reihe von Optionen zum parallelisierenden Python -Code für CPUs und GPUs, häufig mit nur geringfügigen Codeänderungen.
Numba wurde von gestartet Travis Oliphant im Jahr 2012 und ist seitdem aktiv bei der aktiven Entwicklung bei https://github.com/numba/numba mit häufigen Veröffentlichungen. Das Projekt wird von Entwicklern von Anaconda, Inc. mit Unterstützung durch angetrieben DARPA, das Gordon und Betty Moore Foundation, Intel, Nvidia und AMDund eine Gemeinschaft von Mitwirkenden auf GitHub.
Beispiel
Numba kann verwendet werden, indem einfach das angewendet wird numba.jit
Dekorateur einer Python -Funktion, die numerische Berechnungen ausführt:
importieren Numba importieren zufällig @numba.Jit def mONTE_CARLO_PI(N_samples: int): Acc = 0 zum i in Angebot(N_samples): x = zufällig.zufällig() y = zufällig.zufällig() wenn (x**2 + y**2) < 1.0: Acc += 1 Rückkehr 4.0 * Acc / N_samples
Das Just-in-Time-Zusammenstellung passiert transparent, wenn die Funktion aufgerufen wird:
>>> mONTE_CARLO_PI(1000000) 3.14
Die Numba -Website unter https://numba.pydata.org Enthält viele weitere Beispiele sowie Informationen darüber, wie Sie eine gute Leistung von Numba erzielen können.
GPU -Unterstützung
Numba kann Python -Funktionen zum GPU -Code kompilieren. Derzeit sind zwei Backends verfügbar:
- Nvidia CUDA, sehen Numba
.pydata .org /numba-doc /dev /cuda - AMD Rocm HSA, sehen Numba
.pydata .org /numba-doc /dev /roc
Alternative Ansätze
Numba ist ein Ansatz, um Python schnell zu machen, indem bestimmte Funktionen zusammengestellt werden, die Python- und Numpy -Code enthalten. Es gibt viele alternative Ansätze für das schnelle numerische Computing mit Python, wie z. Cython, Tensorflow, Pytorch, Kette, Pythran, und Pypy.
Verweise
- ^ "Releases · numba/numba". GitHub. Abgerufen 2021-06-01.