Нумба
![]() Домашний логотип | |
Оригинальный автор(ы) | Непрерывная аналитика |
---|---|
Разработчик(и) | Общественный проект |
Первоначальный выпуск | 15 августа 2012 г |
Стабильная версия | 0.60.0 [1] ![]() |
Репозиторий | |
Написано в | Питон , С |
Операционная система | Кросс-платформенный |
Тип | Технические вычисления |
Лицензия | 2-пункт BSD |
Веб-сайт | Онемевший |
Numba — это с открытым исходным кодом JIT-компилятор , который преобразует подмножество Python и NumPy в быстрый машинный код с использованием LLVM через пакет Python llvmlite. Он предлагает ряд возможностей для распараллеливания кода Python для процессоров и графических процессоров, часто с незначительными изменениями кода.
Numba был запущен Трэвисом Олифантом в 2012 году и с тех пор находится в активной разработке в своем репозитории на GitHub с частыми выпусками. Проект реализуется разработчиками Anaconda, Inc. при поддержке DARPA , Фонда Гордона и Бетти Мур , Intel , Nvidia и AMD , а также сообщества участников на GitHub .
Пример
[ редактировать ]Numba можно использовать, просто применив numba.jit
декоратор функции Python, которая выполняет числовые вычисления:
import numba
import random
@numba.jit
def monte_carlo_pi(n_samples: int) -> float:
"""Monte Carlo"""
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 содержится множество других примеров, а также информация о том, как добиться от Numba хорошей производительности.
Поддержка графического процессора
[ редактировать ]Numba может компилировать функции Python в код графического процессора. Изначально доступны два бэкэнда:
- Nvidia CUDA , см. цифру
.pydata .org /numba-док /устройство /другой - AMD ROCm HSA , см . число
.pydata .org /numba-док /устройство /рок
Начиная с версии 0.56.4, [2] AMD ROCm HSA официально переведен в неподдерживаемый статус, и отдельная заглушка репозитория для него создана .
Альтернативные подходы
[ редактировать ]Numba — это один из способов сделать Python быстрым путем компиляции определенных функций, содержащих Код Python и NumPy. Существует множество альтернативных подходов для быстрых числовых вычислений с помощью Python, таких как Cython , Pythran и PyPy .
Ссылки
[ редактировать ]- ^ «Выпуск 0.60.0» . 13 июня 2024 г. Проверено 22 июня 2024 г.
- ^ «Примечания к выпуску — документация Numba 0.56.4+0.g288a38bbd.dirty-py3.7-linux-x86_64.egg» .