[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Coverage Status](https://coveralls.io/repos/github/IntelPython/numba-dpex/badge.svg?branch=main)](https://coveralls.io/github/IntelPython/numba-dpex?branch=main)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![Join the chat at https://matrix.to/#/#Data-Parallel-Python_community:gitter.im](https://badges.gitter.im/Join%20Chat.svg)](https://app.gitter.im/#/room/#Data-Parallel-Python_community:gitter.im)
[![Coverity Scan Build Status](https://scan.coverity.com/projects/29068/badge.svg)](https://scan.coverity.com/projects/intelpython-numba-dpex)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/IntelPython/numba-dpex/badge)](https://securityscorecards.dev/viewer/?uri=github.com/IntelPython/numba-dpex)
<img align="left" src="https://spec.oneapi.io/oneapi-logo-white-scaled.jpg" alt="oneAPI logo" width="75"/>
<br/>
<br/>
<br/>
<br/>
Data Parallel Extension for Numba* (numba-dpex) is an open-source standalone
extension for the [Numba](http://numba.pydata.org) Python JIT compiler.
Numba-dpex provides a [SYCL*](https://sycl.tech/)-like API for kernel
programming Python. SYCL* is an open standard developed by the [Unified
Acceleration Foundation](https://uxlfoundation.org/) as a vendor-agnostic way of
programming different types of data-parallel hardware such as multi-core CPUs,
GPUs, and FPGAs. Numba-dpex's kernel-programming API brings the same programming
model and a similar API to Python. The API allows expressing portable
data-parallel kernels in Python and then JIT compiling them for different
hardware targets. JIT compilation is supported for hardware that use the
[SPIR-V](https://www.khronos.org/spir/) intermediate representation format that
includes [OpenCL](https://www.khronos.org/opencl/) CPU (Intel, AMD) devices,
OpenCL GPU (Intel integrated and discrete GPUs) devices, and [oneAPI Level
Zero](https://spec.oneapi.io/level-zero/latest/index.html) GPU (Intel integrated
and discrete GPUs) devices.
The kernel programming API does not yet support every SYCL* feature. Refer to
the [SYCL* and numba-dpex feature comparison](https://intelpython.github.io/numba-dpex/latest/supported_sycl_features.html)
page to get a summary of supported features.
Numba-dpex only implements SYCL*'s kernel programming API, all SYCL runtime
Python bindings are provided by the [dpctl](https://github.com/IntelPython/dpctl)
package.
Along with the kernel programming API, numba-dpex extends Numba's
auto-parallelizer to bring device offload capabilities to `prange` loops and
NumPy-like vector expressions. The offload functionality is supported via the
NumPy drop-in replacement library: [dpnp](https://github.com/IntelPython/dpnp).
Note that `dpnp` and NumPy-based expressions can be used together in the same
function, with `dpnp` expressions getting offloaded by `numba-dpex` and NumPy
expressions getting parallelized by Numba.
Refer the [documentation](https://intelpython.github.io/numba-dpex) 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](https://intelpython.github.io/numba-dpex/latest/getting_started.html)
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:
```bash
python -m pytest --pyargs numba_dpex.tests
```
## Conda
To install `numba_dpex` from the Intel(R) channel on Anaconda
cloud, use the following command:
```bash
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:
```bash
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](https://app.gitter.im/#/room/#Data-Parallel-Python_community:gitter.im) room on Gitter.im.
Also refer our [CONTRIBUTING](https://github.com/IntelPython/numba-dpex/blob/main/CONTRIBUTING.md) page.
Raw data
{
"_id": null,
"home_page": "https://github.com/IntelPython/numba-dpex",
"name": "numba-dpex",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "sycl, python3, numba, numpy, intel, mkl, oneapi, gpu, dpcpp",
"author": "Intel Corporation",
"author_email": null,
"download_url": null,
"platform": null,
"description": "[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Coverage Status](https://coveralls.io/repos/github/IntelPython/numba-dpex/badge.svg?branch=main)](https://coveralls.io/github/IntelPython/numba-dpex?branch=main)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![Join the chat at https://matrix.to/#/#Data-Parallel-Python_community:gitter.im](https://badges.gitter.im/Join%20Chat.svg)](https://app.gitter.im/#/room/#Data-Parallel-Python_community:gitter.im)\n[![Coverity Scan Build Status](https://scan.coverity.com/projects/29068/badge.svg)](https://scan.coverity.com/projects/intelpython-numba-dpex)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/IntelPython/numba-dpex/badge)](https://securityscorecards.dev/viewer/?uri=github.com/IntelPython/numba-dpex)\n<img align=\"left\" src=\"https://spec.oneapi.io/oneapi-logo-white-scaled.jpg\" alt=\"oneAPI logo\" width=\"75\"/>\n<br/>\n<br/>\n<br/>\n<br/>\n\n\n\nData Parallel Extension for Numba* (numba-dpex) is an open-source standalone\nextension for the [Numba](http://numba.pydata.org) Python JIT compiler.\nNumba-dpex provides a [SYCL*](https://sycl.tech/)-like API for kernel\nprogramming Python. SYCL* is an open standard developed by the [Unified\nAcceleration Foundation](https://uxlfoundation.org/) as a vendor-agnostic way of\nprogramming different types of data-parallel hardware such as multi-core CPUs,\nGPUs, and FPGAs. Numba-dpex's kernel-programming API brings the same programming\nmodel and a similar API to Python. The API allows expressing portable\ndata-parallel kernels in Python and then JIT compiling them for different\nhardware targets. JIT compilation is supported for hardware that use the\n[SPIR-V](https://www.khronos.org/spir/) intermediate representation format that\nincludes [OpenCL](https://www.khronos.org/opencl/) CPU (Intel, AMD) devices,\nOpenCL GPU (Intel integrated and discrete GPUs) devices, and [oneAPI Level\nZero](https://spec.oneapi.io/level-zero/latest/index.html) GPU (Intel integrated\nand discrete GPUs) devices.\n\nThe kernel programming API does not yet support every SYCL* feature. Refer to\nthe [SYCL* and numba-dpex feature comparison](https://intelpython.github.io/numba-dpex/latest/supported_sycl_features.html)\npage to get a summary of supported features.\nNumba-dpex only implements SYCL*'s kernel programming API, all SYCL runtime\nPython bindings are provided by the [dpctl](https://github.com/IntelPython/dpctl)\npackage.\n\nAlong with the kernel programming API, numba-dpex extends Numba's\nauto-parallelizer to bring device offload capabilities to `prange` loops and\nNumPy-like vector expressions. The offload functionality is supported via the\nNumPy drop-in replacement library: [dpnp](https://github.com/IntelPython/dpnp).\nNote that `dpnp` and NumPy-based expressions can be used together in the same\nfunction, with `dpnp` expressions getting offloaded by `numba-dpex` and NumPy\nexpressions getting parallelized by Numba.\n\nRefer the [documentation](https://intelpython.github.io/numba-dpex) and examples\nto learn more.\n\n# Getting Started\n\nNumba-dpex is part of the Intel® Distribution of Python (IDP) and Intel®\noneAPI AIKit, and can be installed along with oneAPI. Additionally, we support\ninstalling it from Anaconda cloud. Please refer the instructions\non our [documentation page](https://intelpython.github.io/numba-dpex/latest/getting_started.html)\nfor more details.\n\nOnce the package is installed, a good starting point is to run the examples in\nthe `numba_dpex/examples` directory. The test suite may also be invoked as\nfollows:\n\n```bash\npython -m pytest --pyargs numba_dpex.tests\n```\n\n## Conda\n\nTo install `numba_dpex` from the Intel(R) channel on Anaconda\ncloud, use the following command:\n\n```bash\nconda install numba-dpex -c intel -c conda-forge\n```\n\n## Pip\n\nThe `numba_dpex` can be installed using `pip` obtaining wheel packages either from PyPi or from Intel(R) channel on Anaconda.\nTo install `numba_dpex` wheel package from Intel(R) channel on Anaconda, run the following command:\n\n```bash\npython -m pip install --index-url https://pypi.anaconda.org/intel/simple numba-dpex\n```\n\n# Contributing\n\nPlease create an issue for feature requests and bug reports. You can also use\nthe GitHub Discussions feature for general questions.\n\nIf you want to chat with the developers, join the\n[#Data-Parallel-Python_community](https://app.gitter.im/#/room/#Data-Parallel-Python_community:gitter.im) room on Gitter.im.\n\nAlso refer our [CONTRIBUTING](https://github.com/IntelPython/numba-dpex/blob/main/CONTRIBUTING.md) page.\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "An extension for Numba to add data-parallel offload capability",
"version": "0.23.0",
"project_urls": {
"Changelog": "https://github.com/IntelPython/numba-dpex/blob/main/CHANGELOG.md",
"Documentation": "https://intelpython.github.io/numba-dpex/",
"Homepage": "https://github.com/IntelPython/numba-dpex",
"Issues": "https://github.com/IntelPython/numba-dpex/issues",
"Repository": "https://github.com/IntelPython/numba-dpex.git"
},
"split_keywords": [
"sycl",
" python3",
" numba",
" numpy",
" intel",
" mkl",
" oneapi",
" gpu",
" dpcpp"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a5c69e99e3ccf31307eaf7be35a3342a4dbc7156b67317a3583b4a12db51fe24",
"md5": "fedc9e50c82a10e1d929fb7242b05c88",
"sha256": "b0552d23339f60277d3b700b9b23a3b5166b5476ac34fade2e9011a5d6696938"
},
"downloads": -1,
"filename": "numba_dpex-0.23.0-5-cp310-cp310-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "fedc9e50c82a10e1d929fb7242b05c88",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 325133,
"upload_time": "2024-06-21T17:49:43",
"upload_time_iso_8601": "2024-06-21T17:49:43.071305Z",
"url": "https://files.pythonhosted.org/packages/a5/c6/9e99e3ccf31307eaf7be35a3342a4dbc7156b67317a3583b4a12db51fe24/numba_dpex-0.23.0-5-cp310-cp310-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "327ed7492bdff66d1eca3be947b052853b2dec68cdb6c91edf7350cc7fc7eab3",
"md5": "c1d8b998b4cce2ad53feabe830483059",
"sha256": "69ba20cd89c3a03aab1cf62a62a861bf4c079221426bf1fc006a655fe5abb324"
},
"downloads": -1,
"filename": "numba_dpex-0.23.0-5-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "c1d8b998b4cce2ad53feabe830483059",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9",
"size": 334836,
"upload_time": "2024-06-21T17:49:47",
"upload_time_iso_8601": "2024-06-21T17:49:47.439555Z",
"url": "https://files.pythonhosted.org/packages/32/7e/d7492bdff66d1eca3be947b052853b2dec68cdb6c91edf7350cc7fc7eab3/numba_dpex-0.23.0-5-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bf2d06d48c45dbdc9f6f82dd659176c7b78afdd577f9e3004d03b8b84cc4c74a",
"md5": "37b6c4b3b965d640eb6571214657412e",
"sha256": "3411962fc7d20cdf639aa698a6289033fd133b8122f5cfb4208e597e22aa578d"
},
"downloads": -1,
"filename": "numba_dpex-0.23.0-5-cp311-cp311-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "37b6c4b3b965d640eb6571214657412e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 325138,
"upload_time": "2024-06-21T17:50:00",
"upload_time_iso_8601": "2024-06-21T17:50:00.052578Z",
"url": "https://files.pythonhosted.org/packages/bf/2d/06d48c45dbdc9f6f82dd659176c7b78afdd577f9e3004d03b8b84cc4c74a/numba_dpex-0.23.0-5-cp311-cp311-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a7a01db3816a85b435f5e5e259c4b72de0c90825f38065eaab7d0252385d49ab",
"md5": "899aab66ec3f0bd30be27f6dab451c6a",
"sha256": "75c33d768ee7b5a551370d256d404d27140437e13c3df9ead0dabfb591a54811"
},
"downloads": -1,
"filename": "numba_dpex-0.23.0-5-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "899aab66ec3f0bd30be27f6dab451c6a",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9",
"size": 334838,
"upload_time": "2024-06-21T17:50:04",
"upload_time_iso_8601": "2024-06-21T17:50:04.330101Z",
"url": "https://files.pythonhosted.org/packages/a7/a0/1db3816a85b435f5e5e259c4b72de0c90825f38065eaab7d0252385d49ab/numba_dpex-0.23.0-5-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2f32041c4b8f4c523582ddfce4b85f6ca11b29187feb8838e876bcb9c2b9ec47",
"md5": "5fc920aa3815714846a7e78a8e6be132",
"sha256": "b338b114b9eab965fda6bb166caf9041049c3e47d33dcf470a3bd420f9022f2e"
},
"downloads": -1,
"filename": "numba_dpex-0.23.0-5-cp39-cp39-manylinux_2_28_x86_64.whl",
"has_sig": false,
"md5_digest": "5fc920aa3815714846a7e78a8e6be132",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 325139,
"upload_time": "2024-06-21T17:49:51",
"upload_time_iso_8601": "2024-06-21T17:49:51.723991Z",
"url": "https://files.pythonhosted.org/packages/2f/32/041c4b8f4c523582ddfce4b85f6ca11b29187feb8838e876bcb9c2b9ec47/numba_dpex-0.23.0-5-cp39-cp39-manylinux_2_28_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "17645167d4ab0723ace85c7416dcc109daa5104f4c11f74352e3d1d8c839f1d0",
"md5": "e9c348d02de8f4b78e14f70734381355",
"sha256": "d9f3ef86fc007e7761a92f55b440a93d61c3161c8e289f706c13e6714de406d8"
},
"downloads": -1,
"filename": "numba_dpex-0.23.0-5-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "e9c348d02de8f4b78e14f70734381355",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9",
"size": 334833,
"upload_time": "2024-06-21T17:49:56",
"upload_time_iso_8601": "2024-06-21T17:49:56.213877Z",
"url": "https://files.pythonhosted.org/packages/17/64/5167d4ab0723ace85c7416dcc109daa5104f4c11f74352e3d1d8c839f1d0/numba_dpex-0.23.0-5-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-21 17:49:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "IntelPython",
"github_project": "numba-dpex",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "numba-dpex"
}