numba/numba
NumPy aware dynamic Python compiler using LLVM
What it solves
Python is often slow for heavy numerical computations. Numba solves this by translating Python and NumPy code into fast machine code, allowing developers to achieve performance similar to C or Fortran without leaving the Python environment.
How it works
It is a Just-In-Time (JIT) compiler that uses the LLVM compiler project to generate optimized machine code directly from Python syntax. It is specifically designed to be NumPy-aware, meaning it can optimize operations involving NumPy arrays and functions.
Who it’s for
Data scientists, researchers, and engineers who need to speed up numerically-focused Python code, particularly those working with large datasets or complex mathematical operations.
Highlights
- Automatic parallelization of loops
- GPU-accelerated code generation
- Support for creating ufuncs and C callbacks
- Deep integration with NumPy
Related
- Project
NVIDIA/warpWarp is an NVIDIA‑backed Python library that JIT‑compiles regular Python functions into fast CPU/GPU kernels for physics simulation, robotics, and differentiable computing. It works with PyTorch/JAX, provides a simple `@wp.kernel` decorator and `wp.launch` API, and ships as the `warp-lang` PyPI package.
- Project
numba/llvmliteA lightweight Python binding for LLVM that simplifies the creation of JIT compilers by providing a stable interface to LLVM's IR builder, optimizer, and JIT compiler APIs.
- Project
jax-ml/jaxA Python library for accelerator-oriented array computation and program transformation, designed for high-performance numerical computing and large-scale machine learning.
- Project
cupy/cupyCuPy is a NumPy and SciPy-compatible array library that enables GPU-accelerated numerical computing for Python on NVIDIA CUDA and AMD ROCm platforms.
- Project
brainpy/BrainPyA JIT-compiled framework for computational neuroscience and brain-inspired computation that enables efficient simulation, training, and analysis of brain dynamics models.