Skip to main content

NumPy-like API accelerated with SYCL

Project description

Build Status codecov Build Sphinx

DPNP: NumPy-like API accelerated with SYCL

API coverage summary

Full documentation

DPNP C++ backend documentation

The project contains:

  • Python interface with NumPy-like API
  • C++ library with SYCL based kernels

How to run

By default main CPU SYCL queue is used. To use Intel GPU please use:

DPNP_QUEUE_GPU=1 python examples/example1.py

Build from source:

git clone https://github.com/IntelPython/dpnp
cd dpnp
./0.build.sh

Install Wheel Package from Pypi

Install DPNP

python -m pip install --index-url https://pypi.anaconda.org/intel/simple -extra-index-url https://pypi.org/simple dpnp

Note: DPNP wheel package is placed on Pypi, but some of its dependencies (like Intel numpy) are in Anaconda Cloud. That is why install command requires additional intel Pypi channel from Anaconda Cloud.

Set path to Performance Libraries in case of using venv or system Python:

export LD_LIBRARY_PATH=<path_to_your_env>/lib

It is also required to set following environment variables:

export OCL_ICD_FILENAMES_RESET=1
export OCL_ICD_FILENAMES=libintelocl.so

Run test

. ./0.env.sh
pytest
# or
pytest tests/test_matmul.py -s -v
# or
python -m unittest tests/test_mixins.py

Run numpy external test

. ./0.env.sh
python -m tests.third_party.numpy_ext
# or
python -m tests.third_party.numpy_ext core/tests/test_umath.py
# or
python -m tests.third_party.numpy_ext core/tests/test_umath.py::TestHypot::test_simple

Building documentation:

Prerequisites:
$ conda install sphinx sphinx_rtd_theme
Building:
1. Install dpnp into your python environment
2. $ cd doc && make html
3. The documentation will be in doc/_build/html

Packaging:

. ./0.env.sh
conda-build conda-recipe/

Run benchmark:

cd benchmarks/

asv run --python=python --bench <filename without .py>
# example:
asv run --python=python --bench bench_elementwise

# or

asv run --python=python --bench <class>.<bench>
# example:
asv run --python=python --bench Elementwise.time_square

# add --quick option to run every case once but looks like first execution has additional overheads and takes a lot of time (need to be investigated)

Tests matrix:

# Name OS distributive interpreter python used from SYCL queue manager build commands set forced environment
1 Ubuntu 20.04 Python37 Linux Ubuntu 20.04 Python 3.7 IntelOneAPI local export DPNP_DEBUG=1 python setup.py clean python setup.py build_clib python setup.py build_ext --inplace pytest cmake-3.19.2, valgrind, pytest-valgrind, conda-build, pytest, hypothesis
2 Ubuntu 20.04 Python38 Linux Ubuntu 20.04 Python 3.8 IntelOneAPI local export DPNP_DEBUG=1 python setup.py clean python setup.py build_clib python setup.py build_ext --inplace pytest cmake-3.19.2, valgrind, pytest-valgrind, conda-build, pytest, hypothesis
3 Ubuntu 20.04 Python39 Linux Ubuntu 20.04 Python 3.9 IntelOneAPI local export DPNP_DEBUG=1 python setup.py clean python setup.py build_clib python setup.py build_ext --inplace pytest cmake-3.19.2, valgrind, pytest-valgrind, conda-build, pytest, hypothesis
4 Ubuntu 20.04 External Tests Python37 Linux Ubuntu 20.04 Python 3.7 IntelOneAPI local export DPNP_DEBUG=1 python setup.py clean python setup.py build_clib python setup.py build_ext --inplace python -m tests_external.numpy.runtests cmake-3.19.2, valgrind, pytest-valgrind, conda-build, pytest, hypothesis
5 Ubuntu 20.04 External Tests Python38 Linux Ubuntu 20.04 Python 3.8 IntelOneAPI local export DPNP_DEBUG=1 python setup.py clean python setup.py build_clib python setup.py build_ext --inplace python -m tests_external.numpy.runtests cmake-3.19.2, valgrind, pytest-valgrind, conda-build, pytest, hypothesis
6 Ubuntu 20.04 External Tests Python39 Linux Ubuntu 20.04 Python 3.9 IntelOneAPI local export DPNP_DEBUG=1 python setup.py clean python setup.py build_clib python setup.py build_ext --inplace python -m tests_external.numpy.runtests cmake-3.19.2, valgrind, pytest-valgrind, conda-build, pytest, hypothesis
7 Code style Linux Ubuntu 20.04 Python 3.8 IntelOneAPI local python ./setup.py style cmake-3.19.2, valgrind, pytest-valgrind, conda-build, pytest, hypothesis, conda-verify, pycodestyle, autopep8, black
8 Valgrind Linux Ubuntu 20.04 IntelOneAPI local export DPNP_DEBUG=1 python setup.py clean python setup.py build_clib python setup.py build_ext --inplace cmake-3.19.2, valgrind, pytest-valgrind, conda-build, pytest, hypothesis
9 Code coverage Linux Ubuntu 20.04 Python 3.8 IntelOneAPI local export DPNP_DEBUG=1 python setup.py clean python setup.py build_clib python setup.py build_ext --inplace cmake-3.19.2, valgrind, pytest-valgrind, conda-build, pytest, hypothesis, conda-verify, pycodestyle, autopep8, pytest-cov

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.

dpnp-0.6.2-18-cp38-cp38-manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.8

dpnp-0.6.2-18-cp37-cp37m-manylinux2014_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.7m

File details

Details for the file dpnp-0.6.2-18-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: dpnp-0.6.2-18-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.3.0 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.7.9

File hashes

Hashes for dpnp-0.6.2-18-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97d683407a0749232a777df3b6da6d88acb57460c8bfa4e09742a3fb0b3aaf10
MD5 68b1429ebaaf83515e671fcb8ea7b4f3
BLAKE2b-256 ad45bafd6cc6b0e7db65a806998ee169c501dcd6fdf85d8e0848c65598a24916

See more details on using hashes here.

File details

Details for the file dpnp-0.6.2-18-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: dpnp-0.6.2-18-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.3.0 pkginfo/1.7.0 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.7.9

File hashes

Hashes for dpnp-0.6.2-18-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5135d717413f0e748ddf9a5784d2d39272ee8eee30ce8c7ef304980a3c68fe23
MD5 3ab3dbc69ea3a33834aba85f133af318
BLAKE2b-256 ad764912b77edc4460e919f39df4dc7038151d1d35d39b6360cf73c065669b52

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