Нумба - 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.