Numba is compatible with Python 2.7 and 3.5 or later, and Numpy versions 1.7 to 1.16 (see this note for 1.16 support restrictions).
Our supported platforms are:
Automatic parallelization with @jit is only available on 64-bit platforms, and is not supported in Python 2.7 on Windows.
The easiest way to install Numba and get updates is by using conda
,
a cross-platform package manager and software distribution maintained
by Anaconda, Inc. You can either use Anaconda to get the full stack in one download,
or Miniconda which will install
the minimum packages required for a conda environment.
Once you have conda installed, just type:
$ conda install numba
or:
$ conda update numba
Note that Numba, like Anaconda, only supports PPC in 64-bit little-endian mode.
To enable CUDA GPU support for Numba, install the latest graphics drivers from
NVIDIA for your platform.
(Note that the open source Nouveau drivers shipped by default with many Linux
distributions do not support CUDA.) Then install the cudatoolkit
package:
$ conda install cudatoolkit
You do not need to install the CUDA SDK from NVIDIA.
Binary wheels for Windows, Mac, and Linux are also available from PyPI. You can install Numba using pip
:
$ pip install numba
This will download all of the needed dependencies as well. You do not need to have LLVM installed to use Numba (in fact, Numba will ignore all LLVM versions installed on the system) as the required components are bundled into the llvmlite wheel.
To use CUDA with Numba installed by pip, you need to install the CUDA SDK from NVIDIA. Then you may need to set the following environment variables so Numba can locate the required libraries:
NUMBAPRO_CUDA_DRIVER
- Path to the CUDA driver shared library fileNUMBAPRO_NVVM
- Path to the CUDA libNVVM shared library fileNUMBAPRO_LIBDEVICE
- Path to the CUDA libNVVM libdevice directory which contains .bc filesThe ROCm Platform allows GPU computing with AMD GPUs on Linux. To enable ROCm support in Numba, conda is required, so begin with an Anaconda or Miniconda installation with Numba 0.40 or later installed. Then:
Follow the ROCm installation instructions.
Install roctools
conda package from the numba
channel:
$ conda install -c numba roctools
See the roc-examples repository for sample notebooks.
Berryconda is a
conda-based Python distribution for the Raspberry Pi. We are now uploading
packages to the numba
channel on Anaconda Cloud for 32-bit little-endian,
ARMv7-based boards, which currently incudes the the Raspberry Pi 2 and 3,
but not the Pi 1 or Zero. These can be installed using conda from the
numba
channel:
$ conda install -c numba numba
Berryconda and Numba may work on other Linux-based ARMv7 systems, but this has not been tested.
Installing Numba from source is fairly straightforward (similar to other Python packages), but installing llvmlite can be quite challenging due to the need for a special LLVM build. If you are building from source for the purposes of Numba development, see Build environment for details on how to create a Numba development environment with conda.
If you are building Numba from source for other reasons, first follow the llvmlite installation guide. Once that is completed, you can download the latest Numba source code from Github:
$ git clone git://github.com/numba/numba.git
Source archives of the latest release can also be found on
PyPI. In addition to llvmlite
, you will also need:
gcc_linux-64
and gxx_linux-64
, or macOS packages clang_osx-64
and
clangxx_osx-64
.Then you can build and install Numba from the top level of the source tree:
$ python setup.py install
You should be able to import Numba from the Python prompt:
$ python
Python 2.7.15 |Anaconda custom (x86_64)| (default, May 1 2018, 18:37:05)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numba
>>> numba.__version__
'0.39.0+0.g4e49566.dirty'
You can also try executing the numba -s command to report information about your system capabilities:
$ numba -s
System info:
--------------------------------------------------------------------------------
__Time Stamp__
2018-08-28 15:46:24.631054
__Hardware Information__
Machine : x86_64
CPU Name : haswell
CPU Features :
aes avx avx2 bmi bmi2 cmov cx16 f16c fma fsgsbase lzcnt mmx movbe pclmul popcnt
rdrnd sse sse2 sse3 sse4.1 sse4.2 ssse3 xsave xsaveopt
__OS Information__
Platform : Darwin-17.6.0-x86_64-i386-64bit
Release : 17.6.0
System Name : Darwin
Version : Darwin Kernel Version 17.6.0: Tue May 8 15:22:16 PDT 2018; root:xnu-4570.61.1~1/RELEASE_X86_64
OS specific info : 10.13.5 x86_64
__Python Information__
Python Compiler : GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)
Python Implementation : CPython
Python Version : 2.7.15
Python Locale : en_US UTF-8
__LLVM information__
LLVM version : 6.0.0
__CUDA Information__
Found 1 CUDA devices
id 0 GeForce GT 750M [SUPPORTED]
compute capability: 3.0
pci device id: 0
pci bus id: 1
(output truncated due to length)