Numba

From Wikipedia, the free encyclopedia

Autor Continuum Analytics
Desarrollador Proyecto comunitario
Numba
Información general
Tipo de programa compilador
Autor Continuum Analytics
Desarrollador Proyecto comunitario
Información técnica
Programado en
Versiones
Última versión estable 0.50.0 ( 2020 de marzo del 30)
Enlaces

Numba es un compilador JIT de código abierto que traduce un subconjunto de Python y NumPy en código de máquina usando LLVM, a través del paquete llvmlite de Python. Ofrece una gama de opciones para paralelizar código Python para CPU y GPU, a menudo con solo cambios menores en el código.[1]

Numba fue iniciado por Travis Oliphant en 2012 y desde entonces ha estado en desarrollo activo en GitHub con lanzamientos frecuentes. El proyecto está impulsado por desarrolladores de Anaconda, Inc., con el apoyo de DARPA, la Fundación Gordon y Betty Moore, Intel, Nvidia y AMD, y una comunidad de colaboradores en GitHub.[1][2]

Numba se puede usar simplemente aplicando el decorador numba.jit a una función de Python que hace cálculos numéricos:

import numba
import random

@numba.jit
def monte_carlo_pi(nsamples: int):
    acc = 0
    for i in range(nsamples):
        x = random.random()
        y = random.random()
        if (x**2 + y**2) < 1.0:
            acc += 1
    return 4.0 * acc / nsamples

La compilación en tiempo de ejecución ocurre de forma transparente cuando se llama a la función:

>>> monte_carlo_pi(1000000)
3.14

El sitio web de Numba en contiene más ejemplos, así como información sobre cómo obtener un buen rendimiento de Numba.

Soporte de GPU

Numba puede compilar funciones de Python en código de GPU. Actualmente hay dos backends disponibles: NVIDIA CUDA y AMD ROCm HSA.[2]

Aproximaciones alternativas

Enlaces externos

Referencias

Related Articles

Wikiwand AI