Skip to main content

An extension for Numba to add data-parallel offload capability

Project description

Code style: black Coverage Status pre-commit Join the chat at https://matrix.to/#/#Data-Parallel-Python_community:gitter.im oneAPI logo



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&reg 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

numba_dpex-0.21.2-4-cp310-cp310-win_amd64.whl (286.6 kB view details)

Uploaded CPython 3.10Windows x86-64

numba_dpex-0.21.2-4-cp310-cp310-manylinux2014_x86_64.whl (289.9 kB view details)

Uploaded CPython 3.10

numba_dpex-0.21.2-4-cp39-cp39-win_amd64.whl (286.6 kB view details)

Uploaded CPython 3.9Windows x86-64

numba_dpex-0.21.2-4-cp39-cp39-manylinux2014_x86_64.whl (289.9 kB view details)

Uploaded CPython 3.9

File details

Details for the file numba_dpex-0.21.2-4-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for numba_dpex-0.21.2-4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5e3b2ce4509d8518f18075e09c543dd7ebd2d110661289916267907b0732d702
MD5 056c161fae28cb09b57f2a876034a4bb
BLAKE2b-256 6514baa83d4425074c3d05382c6408312ce25b13a1876d5c2200bc8f854d7862

See more details on using hashes here.

File details

Details for the file numba_dpex-0.21.2-4-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for numba_dpex-0.21.2-4-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 575c047907dbc8aedd7e36336b340bf6f2c5a7e5d0d6250975edd8fc70896319
MD5 af3a2a9878ba32985579db833931ff25
BLAKE2b-256 f521196eb8d0af4a021aede34cf5e09a1982af4617f693d610b91281af7b54ab

See more details on using hashes here.

File details

Details for the file numba_dpex-0.21.2-4-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for numba_dpex-0.21.2-4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5a2063e9b19495f5d991484986a6792bbe57f34ab53302b25764c89431e2fba8
MD5 c9c0f3b97b43d5df682f60cc46157611
BLAKE2b-256 a4e37861b8a773b1060a35b6207c37e31b75085eec5af16bf8e64bbdbdace34e

See more details on using hashes here.

File details

Details for the file numba_dpex-0.21.2-4-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for numba_dpex-0.21.2-4-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1a7bd233a8bde7eceb581c19f8ab5e8b672918b2d7e5f0b37dd4b96997a3b7e7
MD5 4f2e76f743c04ef6293348e997ff57b8
BLAKE2b-256 2a7ad725585ea1fba2457c27532f467c584e1cc99a82412a27b5b74676a8d8c5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page