Нумба - Numba
Автор (ы) оригинала | Continuum Analytics |
---|---|
Разработчики) | Общественный проект |
изначальный выпуск | 15 августа 2012 г . |
Стабильный выпуск | 0.53.1 / 1 апреля 2021 г .
|
Предварительный выпуск | 0.54.0rc2 / 16 июля 2021 г .
|
Репозиторий | |
Написано в | Python , C |
Операционная система | Кроссплатформенность |
Тип | Технические вычисления |
Интернет сайт | numba |
Numba - это JIT-компилятор с открытым исходным кодом, который переводит подмножество Python и NumPy в быстрый машинный код с использованием LLVM через пакет Python llvmlite. Он предлагает ряд вариантов распараллеливания кода Python для процессоров и графических процессоров, часто с незначительными изменениями кода.
Numba была основана Трэвисом Олифантом в 2012 году и с тех пор находится в стадии активной разработки на https://github.com/numba/numba с частыми выпусками. Проект осуществляется разработчиками из Anaconda, Inc. при поддержке DARPA , Фонда Гордона и Бетти Мур , Intel , Nvidia и AMD , а также сообщества участников на GitHub .
Пример
Numba можно использовать, просто применив numba.jit
декоратор к функции Python, которая выполняет численные вычисления:
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 по адресу https://numba.pydata.org есть еще много примеров, а также информация о том, как добиться хорошей производительности от Numba.
Поддержка GPU
Numba может компилировать функции Python в код графического процессора. В настоящее время доступны два бэкенда:
-
NVIDIA CUDA , см. Numba
.pydata .org / numba-doc / dev / cuda -
AMD ROCm HSA , см. Numba
.pydata .org / numba-doc / dev / roc
Альтернативные подходы
Numba - это один из подходов к ускорению работы Python путем компиляции определенных функций, содержащих код Python и Numpy. Многие альтернативные подходы для быстрого числовых вычислений с EXIST Python, такие как Cython , TensorFlow , PyTorch , Chainer , Pythran и PyPy .