Welcome to the Data-parallel Control (dpctl) Documentation!

The data-parallel control (dpctl) library provides C and Python bindings for SYCL 2020. The SYCL 2020 features supported by dpctl are limited to those included by Intel(R) DPC++ compiler and specifically cover the SYCL runtime classes described in Section 4.6 of the SYCL 2020 specification.

Apart from the bindings for these runtime classes, dpctl includes bindings for SYCL USM memory allocators and deallocators. Dpctl Python API provides classes that implement Python buffer protocol

Dpctl also supports the DPC++ ext::oneapi::filter_selector extension and has experimental support for SYCL’s interoperability kernel and kernel_bundle<bundle_state::executable> classes.

Dpctl includes a reference implementation for array API specification using DPC++ and USM memory allocation in the dpctl.tensor sub-module. The dpctl.tensor sub-module provides an N-dimensional array Python object dpctl.tensor.usm_ndarray and a growing implementation of array API specification compliant operations on instances of the array class.

How-to Guides

API Documentation


dpctl is developed by Intel(R) and is part of the Intel Distribution for Python.


See the contributing guide for the information on coding style and standards used in dpctl.


dpctl is licensed under Apache License 2.0 that can be found in LICENSE. All usage and contributions to the project are subject to the terms and conditions of this license.