Skip to content

intel/llvm

Repository files navigation

This is the Intel staging area for llvm.org contributions and the home for Intel LLVM-based projects:

For general contribution process see CONTRIBUTING.md

oneAPI DPC++ compiler

oneAPI logo

SYCL Post Commit Generate Doxygen documentation

The DPC++ is a LLVM-based compiler project that implements compiler and runtime support for the SYCL* language. The project is hosted in the sycl branch and is synced with the tip of the LLVM upstream main branch on a regular basis (revisions delay is usually not more than 1-2 weeks). DPC++ compiler takes everything from LLVM upstream as is, however some modules of LLVM might be not included in the default project build configuration. Additional modules can be enabled by modifying build framework settings.

The DPC++ goal is to support the latest SYCL* standard and work on that is in progress. DPC++ also implements a number of extensions to the SYCL* standard, which can be found in the sycl/doc/extensions directory.

The main purpose of this project is open source collaboration on the DPC++ compiler implementation in LLVM across a variety of architectures, prototyping compiler and runtime library solutions, designing future extensions, and conducting experiments. As the implementation becomes more mature, we try to upstream as much DPC++ support to LLVM main branch as possible. See SYCL upstreaming working group notes for more details.

Note that this project can be used as a technical foundation for some proprietary compiler products, which may leverage implementations from this open source project. One of the examples is Intel(R) oneAPI DPC++ Compiler Features parity between this project and downstream projects is not guaranteed.

Project documentation is available at: DPC++ Documentation.

How to use DPC++

Docker containers

See available containers with pre-built/pre-installed DPC++ compiler at: Containers

Releases

Daily builds of the sycl branch on Linux are available at releases. A few times a year, we publish Release Notes to highlight all important changes made in the project: features implemented and issues addressed. The corresponding builds can be found using search in daily releases. None of the branches in the project are stable or rigorously tested for production quality control, so the quality of these releases is expected to be similar to the daily releases.

Build from sources

See Get Started Guide.

Report a problem

Submit an issue or initiate a discussion.

How to contribute to DPC++

This project welcomes contributions from the community. Please refer to CONTRIBUTING for general guidelines around contributing to this project. You can then see ContributeToDPCPP for DPC++ specific guidelines.

Late-outline OpenMP* and OpenMP* Offload

See openmp branch.

License

See LICENSE for details.

*Other names and brands may be claimed as the property of others.