Intel® oneAPI DPC++/C++ Compiler
A Standards-Based, Cross-architecture Compiler
Future-Ready Programming Model Provides Freedom of Choice
What You Can Do
- Compile ISO C++ and SYCL* (from the Khronos* Group)
- Reuse code across hardware targets, including CPUs, GPUs, and FPGAs.
- Avoid proprietary lock-in with a cross-industry, open, standards-based unified programming model.
Realize All the Hardware Value
- Get great performance from industry-leading Intel® compiler technology.
- Generate optimized binary host code and accelerator code.
- Use optimized Intel oneAPI performance and threading libraries.
Learn More about Intel® oneAPI Tools
Confidently Develop Performant Code Quickly and Correctly
- Integrate seamlessly with popular third-party compilers, development environments, and operating systems.
- Use the latest standards including C++ 20, SYCL, and OpenMP* 5.0 and 5.1 for GPU offload.†
- Stay compatible with existing CPU-focused workflows with Intel® C++ Compiler Classic.
Develop on a Variety of GPUs
Develop and run applications on Intel GPUs or use plug-ins from Codeplay* to develop on AMD* or NVIDIA* GPUs.
Download as Part of a Toolkit
Get the compiler in any of these toolkits.
Develop in the Cloud
Build and optimize oneAPI multiarchitecture applications using the latest optimized Intel® oneAPI and AI tools, and test your workloads across Intel® CPUs and GPUs. No hardware installations, software downloads, or configuration necessary. Free for 120 days with extensions possible.
Download the Stand-Alone Version
A stand-alone download of the Intel® oneAPI DPC++/C++ Compiler is available. You can download binaries from Intel or choose your preferred repository.
Help the Intel oneAPI DPC++/C++ Compiler Evolve
This compiler is part of the open oneAPI industry standards initiative. You are welcome to participate.
Features
Cross-architecture Compiling
- Development Productivity: Targets CPUs and accelerators through single-source code while permitting custom tuning
- Language Standards Support: Is built to the latest standards, including C++ 17 and SYCL†, and partial support for C++ 20, to ensure portability and support of features like generic lambda expressions and variable templates
- Industry Standards Support: Supports a subset of OpenMP 4.5, 5.0, and 5.1 for GPU offload†
- Trusted Technology: Uses well-proven LLVM* compiler technology as well as Intel's history of compiler leadership
†Available in the Intel oneAPI DPC++/C++ Compiler only.
FPGA Emulation and Compilation
- Enables experienced FPGA developers to target accelerations workloads to field-programmable platforms
- Is included with the compiler
Note Full FPGA programming requires the optional Intel® FPGA Add-on for the oneAPI Base Toolkit.
Benchmarks
- Part 1: Intel Compilers Boost C++ Application Performance on Linux*
- Part 2: Intel Compilers Boost C++ Application Performance on Linux
- Intel Compilers Perform on C++ Embedded Applications
- Intel Compilers Boost C++ Application Performance (Single Thread) on Linux
- Part 1: Intel Compilers Boost C++ Application Performance on Windows*
- Part 2: Intel Compilers Boost C++ Application Performance on Windows
Part 1: Intel Compilers Boost C++ Application Performance on Linux
Part 2: Intel Compilers Boost C++ Application Performance on Linux
Intel Compilers Perform on C++ Embedded Applications
Intel Compilers Boost C++ Application Performance (Single Thread) on Linux
Part 1: Intel Compilers Boost C++ Application Performance on Windows
Part 2: Intel Compilers Boost C++ Application Performance on Windows
Documentation & Code Samples
Documentation
Code Samples
C++ with SYCL* for GPU Offload
Simple-Add Programming Methods
A Hello-World-type sample adds two large vectors of integers and verifies the results. Learn how the most basic code in C++ offloads computations to a GPU using Unified Shared Memory (USM) and buffers.
Sepia Filter
Convert a color image to a monochromatic sepia tone image by offloading each compute-intensive pixel conversion using C++ with code that's compliant with SYCL for CPUs and GPUs.
Mandelbrot
Learn how to use C++ with code that's compliant with SYCL for offloading computations to a GPU. Optimize and improve processing time using parallelism.
C++ and OpenMP*
Accelerate Mandelbrot with OpenMP
Learn how to accelerate program performance with Single Instruction Multiple Data (SIMD) and parallelization using OpenMP to calculate the Mandelbrot set.
Use ISO3DFD for OpenMP Offload
ISO3DFD is a 3D stencil that simulates wave propagating in a 3D isotropic medium. Use it to understand common challenges and techniques when targeting OpenMP Offload devices, like GPUs.
FPGA Samples
Get Started
This tutorial shows how to compile code for FPGAs that is compliant with SYCL by using a simple vector addition.
Database Acceleration
This reference design demonstrates how to use an FPGA to accelerate database queries for a data-warehouse schema derived from the TPC-H* benchmark.
Stream I/O Channels with Minimum Variance Distortionless Response (MVDR) Beamforming
This reference design demonstrates how to use I/O streaming using SYCL on an FPGA for a large system.
Gzip Compression
Use this reference design to implement a compression algorithm optimized for FPGAs.
QR Decomposition of Matrices
This reference design demonstrates high-performance QR decomposition of real and complex matrices on an FPGA.
DPC++ FPGA Code Samples Navigation Guide
How to work with code samples:
Training
Get Started
- Get Started with the Intel oneAPI DPC++/C++ Compiler [59:07]
- Introducing the Intel oneAPI DPC++/C++ Compiler [1:00:26]
Understand the Intel oneAPI DPC/C++ Compiler Capabilities
- Driver Options, Pragmas & Intrinsics [47:07]
- Tune Applications on CPUs & GPUs [1:18:10]
FPGA Offload Development
GPU Offload Development
Migrate CUDA* to SYCL
News & Case Studies
Tencent Gains Up to 85% Performance Boost for MySQL
"TencentDB for MySQL is designed to provide customers with secure, reliable, high-performance, and easy-to-maintain enterprise-level cloud database services. And Intel oneAPI DPC++/C++ Compiler can bring Tencent another avenue to get better MySQL performance."
— Ben Cheng, TencentDB
Alibaba Cloud* E-HPC-DP: A Winning E-HPC Cloud Collaboration
E-HPC provides individual users, education and research institutions, and public institutions with a fast, elastic, and secure cloud compute platform. With the Intel oneAPI toolkit, E-HPC can help customers build a high-performance, profiling computing platform on Intel® Xeon® Scalable processors.
Specifications
Intel oneAPI DPC++/C++ Compiler
Processors:
- Intel Xeon Scalable processors
- Intel Xeon processors
- Intel Core processors
- Intel Atom processors
GPUs:
- Intel® UHD Graphics for 11th generation Intel processors or newer
- Intel® Iris Xᵉ graphics or newer
- Intel® Arc™ A-Series graphics
- Intel® Server GPU
- Intel® Data Center GPU Flex Series
- Intel® Data Center GPU Max Series
FPGAs:
- Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA
- Intel® Stratix® 10 FPGA
- Intel® Agilex™ FPGA
For more information, see the system requirements.
Development environments:
- Microsoft Visual Studio*, Microsoft Visual Studio Code
- Eclipse* IDE
Threading:
- Intel® oneAPI Threading Building Blocks
- OpenMP†
- Native threads
†OpenMP host and offload support is available only in the Intel oneAPI DPC++/C++ Compiler
Intel C++ Compiler Classic
Processor:
- Intel Xeon Scalable processors
- Intel Xeon processors
- Intel Core processors
- Intel Atom processors
Host and target operating systems:
- Windows
- Linux
- macOS*
Languages:
- C and C++
For more information, see the system requirements.
Development environments:
- Microsoft Visual Studio, Microsoft Visual Studio Code
- Eclipse IDE
Threading:
- Intel oneAPI Threading Building Blocks
- OpenMP†
- Native threads
†OpenMP host support only
Get Help
Your success is our success. Access these support resources when you need assistance.
Related Products
Intel® Fortran Compiler
Build high-performance applications by generating optimized code for Intel Xeon Scalable processors, Intel Core processors, and supported XPUs. This allows you to:
- Boost Single Instruction Multiple Data (SIMD) vectorization and threading capabilities (including for Intel® Advanced Vector Extensions 512 instructions) using the latest OpenMP parallel programming model
- Take advantage of more cores and increased vector register width available in Intel Xeon processors
- Comply with open standards such as Fortran and OpenMP
- Work with a familiar set of tools on your preferred platform: Windows, Linux, or macOS
Stay in the Know with All Things CODE
Sign up to receive the latest trends, tutorials, tools, training, and more to help you
write better code optimized for CPUs, GPUs, FPGAs, and other accelerators—
stand-alone or in any combination.