An extension for Numba to add data-parallel offload capability
Project description
Data-parallel Extension for Numba* (numba-dpex) is a standalone extension for
the Numba Python JIT compiler. Numba-dpex provides
a generic kernel programming API and an offload feature that extends Numba's
auto-parallelizer to generate data-parallel kernels for parfor
nodes.
Numba-dpex's kernel API has a design and API similar to Numba's cuda.jit
module, but is based on the SYCL language. The
code-generation for the kernel API currently supports
SPIR-V-based
OpenCL and
oneAPI Level Zero
devices that are supported by Intel® DPC++ SYCL compiler runtime. Supported
devices include Intel® CPUs, integrated GPUs and discrete GPUs.
The offload functionality in numba-dpex is based on Numba's parfor
loop-parallelizer. Our compiler extends Numba's parfor
feature to generate
kernels and offload them to devices supported by DPC++ SYCL compiler runtime.
The offload functionality is supported via a new NumPy drop-in replacement
library: dpnp and NumPy-based expressions
and numba.prange
loops are not offloaded.
Refer the documentation and examples to learn more.
Getting Started
Numba-dpex is part of the Intel® Distribution of Python (IDP) and Intel® oneAPI AIKit, and can be installed along with oneAPI. Additionally, we support installing it from Anaconda cloud. Please refer the instructions on our documentation page for more details.
Once the package is installed, a good starting point is to run the examples in
the numba_dpex/examples
directory. The test suite may also be invoked as
follows:
python -m pytest --pyargs numba_dpex.tests
Conda
To install numba_dpex
from the Intel(R) channel on Anaconda
cloud, use the following command:
conda install numba-dpex -c intel -c conda-forge
Pip
The numba_dpex
can be installed using pip
obtaining wheel packages either from PyPi or from Intel(R) channel on Anaconda.
To install numba_dpex
wheel package from Intel(R) channel on Anaconda, run the following command:
python -m pip install --index-url https://pypi.anaconda.org/intel/simple numba-dpex
Contributing
Please create an issue for feature requests and bug reports. You can also use the GitHub Discussions feature for general questions.
If you want to chat with the developers, join the #Data-Parallel-Python_community room on Gitter.im.
Also refer our CONTRIBUTING page.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for numba_dpex-0.21.2-4-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e3b2ce4509d8518f18075e09c543dd7ebd2d110661289916267907b0732d702 |
|
MD5 | 056c161fae28cb09b57f2a876034a4bb |
|
BLAKE2b-256 | 6514baa83d4425074c3d05382c6408312ce25b13a1876d5c2200bc8f854d7862 |
Hashes for numba_dpex-0.21.2-4-cp310-cp310-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 575c047907dbc8aedd7e36336b340bf6f2c5a7e5d0d6250975edd8fc70896319 |
|
MD5 | af3a2a9878ba32985579db833931ff25 |
|
BLAKE2b-256 | f521196eb8d0af4a021aede34cf5e09a1982af4617f693d610b91281af7b54ab |
Hashes for numba_dpex-0.21.2-4-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a2063e9b19495f5d991484986a6792bbe57f34ab53302b25764c89431e2fba8 |
|
MD5 | c9c0f3b97b43d5df682f60cc46157611 |
|
BLAKE2b-256 | a4e37861b8a773b1060a35b6207c37e31b75085eec5af16bf8e64bbdbdace34e |
Hashes for numba_dpex-0.21.2-4-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a7bd233a8bde7eceb581c19f8ab5e8b672918b2d7e5f0b37dd4b96997a3b7e7 |
|
MD5 | 4f2e76f743c04ef6293348e997ff57b8 |
|
BLAKE2b-256 | 2a7ad725585ea1fba2457c27532f467c584e1cc99a82412a27b5b74676a8d8c5 |