Intel Project for LLVM* technology
This is the Intel staging area for llvm.org contributions and the home for Intel LLVM-based projects:
oneAPI DPC++ compiler
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++
See available containers with pre-built/pre-installed DPC++ compiler at: Containers
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
How to contribute to DPC++
Late-outline OpenMP* and OpenMP* Offload
See openmp branch.
See LICENSE for details.
*Other names and brands may be claimed as the property of others.