Jump to content

Нумба

Оригинальный автор(ы) Непрерывная аналитика
Разработчик(и) Общественный проект
Первоначальный выпуск 15 августа 2012 г .; 11 лет назад ( 15.08.2012 )
Стабильная версия
0.60.0 [1]  Отредактируйте это в Викиданных / 13 июня 2024 г .; 50 дней назад ( 13 июня 2024 г. )
Репозиторий
Написано в Питон , С
Операционная система Кросс-платформенный
Тип Технические вычисления
Лицензия 2-пункт BSD
Веб-сайт Онемевший .pydata .org

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 в код графического процессора. Изначально доступны два бэкэнда:

Начиная с версии 0.56.4, [2] AMD ROCm HSA официально переведен в неподдерживаемый статус, и отдельная заглушка репозитория для него создана .

Альтернативные подходы

[ редактировать ]

Numba — это один из способов сделать Python быстрым путем компиляции определенных функций, содержащих Код Python и NumPy. Существует множество альтернативных подходов для быстрых числовых вычислений с помощью Python, таких как Cython , Pythran и PyPy .

  1. ^ «Выпуск 0.60.0» . 13 июня 2024 г. Проверено 22 июня 2024 г.
  2. ^ «Примечания к выпуску — документация Numba 0.56.4+0.g288a38bbd.dirty-py3.7-linux-x86_64.egg» .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6c603e92d0ad35c2b3681054d36c5c52__1719014220
URL1:https://arc.ask3.ru/arc/aa/6c/52/6c603e92d0ad35c2b3681054d36c5c52.html
Заголовок, (Title) документа по адресу, URL1:
Numba - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)