Нумба - Numba
Оригинальный автор (ы) | Continuum Analytics |
---|---|
Разработчики) | Общественный проект |
изначальный выпуск | 15 августа 2012 г. |
Стабильный выпуск | 0.50.0 / 10 июня 2020 |
Предварительный выпуск | 0.50.0dev0 / 30 марта 2020 |
Репозиторий | |
Написано в | Python, C |
Операционная система | Кроссплатформенность |
Тип | Технические вычисления |
Интернет сайт | 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, выполняющей численные вычисления:
импорт Numbaимпорт случайный@numba.трястиdef monte_carlo_pi(n_samples: int): соотв = 0 за я в классифицировать(n_samples): Икс = случайный.случайный() у = случайный.случайный() если (Икс**2 + у**2) < 1.0: соотв += 1 возвращаться 4.0 * соотв / 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. Существует множество альтернативных подходов для быстрых числовых вычислений с помощью Python, например Cython, TensorFlow, PyTorch, Chainer, Пифран, и PyPy.