This document is the source for the DPC++ language reference. Data Parallel C++ (DPC++) is an open, standards-based evolution of ISO C++ that incorporates Khronos SYCL* and community extensions to simplify data parallel programming. DPC++ allows code reuse across hardware targets, and enables high productivity and performance across CPU, GPU, and FPGA architectures, while permitting accelerator-specific tuning.
The document is a work in progress. It may be missing descriptions or entire classes. If you see something wrong, file an issue or submit a PR to fix it.
Commits to dpcpp branch are built by GitHub Actions and published with Github Pages
The document is built with _Sphinx plugins. To install all required software on Ubuntu:
apt-get update -qq DEBIAN_FRONTEND=noninteractive xargs -a ubuntu-packages.txt apt-get install -qq pip3 install --upgrade --quiet -r requirements.txt
On Windows, install python_ and git_, followed by:
pip install --upgrade --quiet -r requirements.txt
For development, you must also install `clang-format`_. This is only needed for C++ code formatting as part of the git pre-commit hook.
To build:
python doc.py html
To see the document, open build/html/index.html
This repo is a downstream fork of SYCL Reference. Edits that are not DPC++ specific should go upstream, and then be merged into this repo. If sycl is a remote that points to the upstream repo, then:
git checkout dpcpp git pull sycl main git commit -m 'merge from sycl' git push
Check if files are missing license/copyright:
reuse lint
Add license/copyright to a rst file (may require a patch):
reuse addheader -c "Intel Corporation" -l CC-BY-4.0 path/to/file.rst
Add license/copyright to a code example:
reuse addheader -c "Intel Corporation" -l Apache-2.0 path/to/file.cpp
See licenses
See contributing.
See Guidelines.