Skip to main content

A lightweight Python wrapper for a subset of SYCL.

Project description

Code style: black Imports: isort pre-commit Coverage Status Generate Documentation Join the chat at https://matrix.to/#/#Data-Parallel-Python_community:gitter.im OpenSSF Scorecard

oneAPI logo

Data Parallel Control

Data Parallel Control or dpctl is a Python library that allows users to control the execution placement of a compute kernel on an XPU.

The compute kernel can be a code:

  • written by the user, e.g., using numba-dpex
  • that is part of a library, such as oneMKL

The dpctl library is built upon the SYCL standard. It implements Python bindings for a subset of the standard runtime classes that allow users to:

  • query platforms
  • discover and represent devices and sub-devices
  • construct contexts and queues

dpctl features classes for SYCL Unified Shared Memory (USM) management and implements a tensor library conforming to Python Array API standard.

The library helps authors of Python native extensions written in C, Cython, or pybind11 to access dpctl objects representing SYCL devices, queues, memory, and tensors.

Dpctl is the core part of a larger family of data-parallel Python libraries and tools to program on XPUs.

Installing

You can install the library using conda (from Intel's channel - see instructions below) or pip package managers. It is also available in the Intel(R) Distribution for Python (IDP).

Intel(R) oneAPI

You can find the most recent release of dpctl every quarter as part of the Intel(R) oneAPI releases.

To get the library from the latest oneAPI release, follow the instructions from Intel(R) oneAPI installation guide.

NOTE: You need to install the Intel(R) oneAPI AI Analytics Tookit to get IDP and dpctl.

Conda

To install dpctl from the Intel(R) conda channel, use the following command:

conda install dpctl -c https://software.repos.intel.com/python/conda/ -c conda-forge --override-channels

Pip

The dpctl can be installed using pip obtaining wheel packages either from PyPi or from Intel(R) channel. To install dpctl wheel package from Intel(R) channel, run the following command:

python -m pip install --index-url https://software.repos.intel.com/python/pypi dpctl

Installing the bleeding edge

To try out the latest features, install dpctl from our development channel on Anaconda cloud:

conda install dpctl -c dppy/label/dev -c conda-forge --override-channels

Building

Refer to our Documentation for more information on setting up a development environment and building dpctl from the source.

Examples

Our examples are located in the examples/ folder and are organized in sub-folders. Examples in the Python/ folder demonstrate how to inspect the heterogeneous platform, select a device, create an execution queue, and how to control device memory allocation and execution placement.

Examples in Cython/, C/, and Pybind11 folders demonstrate creation of SYCL-powered native Python extensions. Please refer to each folder's README document for directions on how to build and use each example.

Running Tests

Tests are located in folder dpctl/tests.

To run the tests, use:

pytest --pyargs dpctl

Running full test suite requires working C/C++ compiler and installed Cython package. To run the test suite without these, use:

pytest --pyargs dpctl -k "not test_cython_api and not test_c_headers"

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

dpctl-0.20.2-0-cp313-cp313-win_amd64.whl (27.6 MB view details)

Uploaded CPython 3.13Windows x86-64

dpctl-0.20.2-0-cp313-cp313-manylinux_2_28_x86_64.whl (28.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

dpctl-0.20.2-0-cp312-cp312-win_amd64.whl (27.6 MB view details)

Uploaded CPython 3.12Windows x86-64

dpctl-0.20.2-0-cp312-cp312-manylinux_2_28_x86_64.whl (28.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

dpctl-0.20.2-0-cp311-cp311-win_amd64.whl (27.6 MB view details)

Uploaded CPython 3.11Windows x86-64

dpctl-0.20.2-0-cp311-cp311-manylinux_2_28_x86_64.whl (28.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

dpctl-0.20.2-0-cp310-cp310-win_amd64.whl (27.6 MB view details)

Uploaded CPython 3.10Windows x86-64

dpctl-0.20.2-0-cp310-cp310-manylinux_2_28_x86_64.whl (28.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

dpctl-0.20.2-0-cp39-cp39-win_amd64.whl (27.6 MB view details)

Uploaded CPython 3.9Windows x86-64

dpctl-0.20.2-0-cp39-cp39-manylinux_2_28_x86_64.whl (28.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

File details

Details for the file dpctl-0.20.2-0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: dpctl-0.20.2-0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 27.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.15

File hashes

Hashes for dpctl-0.20.2-0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f5138f0530e41a1ea27c3ee0535ea6c02c69c79f4e2f974363cee35e68e902e7
MD5 3b4f5875fdebf9b34d4a1bff3b812477
BLAKE2b-256 258f927b3f789db961fff3159dba087684d22c2c5c81f415cd31f8db65aa41ed

See more details on using hashes here.

File details

Details for the file dpctl-0.20.2-0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dpctl-0.20.2-0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8f10d1abe8edf167cc56bfbc27517814a5ee5a4f53e94219613c4beeaf98adeb
MD5 80c7cdbc0837019e55e95ce38c345333
BLAKE2b-256 ded7adb58bda7caa9ed5ed1b6cd951cf66bf977e2df16c4c9b9ccf78c9836037

See more details on using hashes here.

File details

Details for the file dpctl-0.20.2-0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: dpctl-0.20.2-0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 27.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.15

File hashes

Hashes for dpctl-0.20.2-0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2dc948539dcdcbdba8756c3caa0c7b613ab296abbb7fd750eaa15cdb7ac940cf
MD5 ae9b61e41a6dac2111ba3b781b592e93
BLAKE2b-256 3898178985ce568370e16649766b8a0559f710e30c9440fc0fa06f3a4b36f8da

See more details on using hashes here.

File details

Details for the file dpctl-0.20.2-0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dpctl-0.20.2-0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 12be02cb33293852a0ad3e0ca417c63ac429f502547567bdf36f7dc180046a9e
MD5 2075349935ce0035d087ce24c9eb0915
BLAKE2b-256 bb6069535e37a27c12dfceb6191e2a6744a265be9ee2b513f15334843ac4d578

See more details on using hashes here.

File details

Details for the file dpctl-0.20.2-0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: dpctl-0.20.2-0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 27.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.15

File hashes

Hashes for dpctl-0.20.2-0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 71e0d731e29462ec56f62574d21671aa1c35d32e9beecb0af41e3caa173ab764
MD5 55c8c741853de3f97c093de6645085e4
BLAKE2b-256 fb30ddc0ff5418abf146b1daa0b0a89097f7f097ff64e38626eb339200b94e62

See more details on using hashes here.

File details

Details for the file dpctl-0.20.2-0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dpctl-0.20.2-0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cc7e48e4bce5d6664a216e48098011843290c6abee6fb1c172a60d69cadb27dd
MD5 94292aa61231bc44eceac4abbd9c7fed
BLAKE2b-256 8481632b3d5f39ebd69e8a282660761f8d01611d9083139e89a4521f5a1fa16a

See more details on using hashes here.

File details

Details for the file dpctl-0.20.2-0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: dpctl-0.20.2-0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 27.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.15

File hashes

Hashes for dpctl-0.20.2-0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 29939586f6fed1308846d84ae335b6dfaa7d99658eec8f4757b33305dfc00739
MD5 293249774b43cd56b72903340d609731
BLAKE2b-256 f0f5c34143e6c87b2cea96c06e682d6d8e40e5a4cab647c152e346befc9f62f8

See more details on using hashes here.

File details

Details for the file dpctl-0.20.2-0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dpctl-0.20.2-0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71f813ab4de0e7abd11ee9989afba37222d5547a273a4fafed4aea4023507d2b
MD5 7a6849705308e4c8d75250b66d61d7b0
BLAKE2b-256 fb7977bf560ba7f33933e065da251cbea44d739049ef56fea724f06dd5a6edd3

See more details on using hashes here.

File details

Details for the file dpctl-0.20.2-0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: dpctl-0.20.2-0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 27.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.15

File hashes

Hashes for dpctl-0.20.2-0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 903e17482b5dc894c89036f723e359fd3136d1b790331c8b68b3e0a5273d177e
MD5 96759cf5fa249388a9bcb6e0a6e49354
BLAKE2b-256 53c35569875abae6523ad2f8d6e1a02736afde9a3ae781332c96c18a7ffd9bc6

See more details on using hashes here.

File details

Details for the file dpctl-0.20.2-0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for dpctl-0.20.2-0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ed4168c2e4ed43aff3b57aac429e6f9ceee1407a3f56c98eb4508ba9fc2986b4
MD5 a3baeacf2473cfb77840f9c0db89ca2f
BLAKE2b-256 28d383904a92f28335128688dbb3941da2dca5c9f793e638a019cdc0e593d53e

See more details on using hashes here.

Supported by

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