DPCPP_Reference icon indicating copy to clipboard operation
DPCPP_Reference copied to clipboard

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

.. Copyright 2020 The Khronos Group Inc. SPDX-License-Identifier: CC-BY-4.0

========================== DPC++ Language Reference

This document is the source for the DPC++ <https://software.intel.com/content/www/us/en/develop/tools/oneapi/data-parallel-c-plus-plus.html>__ 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 <https://oneapi-src.github.io/DPCPP_Reference>__

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 <https://KhronosGroup/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 <https://github.com/fsfe/reuse-tool/pull/254>__)::

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 <https://www.intel.com/content/www/us/en/security-center/default.html>_.

.. _licenses: LICENSES .. _contributing: CONTRIBUTING.rst