/DPCPP_Reference

oneAPI Data Parallel C++ (DPC++) language reference

Primary LanguageC++OtherNOASSERTION

DPC++ Language Reference

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.

Publishing

Commits to dpcpp branch are built by GitHub Actions and published with Github Pages

Prerequisites

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.

Building

To build:

python doc.py html

To see the document, open build/html/index.html

Relationship to SYCL Reference

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

License and Copyright Markings

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

License

See licenses

Contribute

See contributing.

Security

See Guidelines.