We are happy to announce that the Intel® oneAPI DPC++/C++ Compiler completed conformance testing and is the first compiler officially supporting the full SYCL 2020 specification from the Khronos Group. Having it as a complete reference implementation is a major milestone not only for Intel, but for the entire accelerated computing software industry.
SYCL is an open standard that embraces a multiplatform, multivendor approach to C++ programming. For that reason, it enjoys the backing of a growing part of the developer ecosystem. We are glad to contribute to the open software framework that SYCL provides and help support the initiatives, like the oneAPI specification and the formation of the Unified Acceleration Foundation (UXL), created in its wake.
For developers, having a SYCL 2020-conformant compiler means they can have confidence that their SYCL code compiled by Intel’s compiler is portable and reliably performs on different GPUs in the long term. An application developed using SYCL 2020 can adapt to changing platform architecture and future generations of diverse and new accelerators. This worthy investment will continue adding value by reducing development and maintenance costs for many years as new architectures emerge.
Dr. Tom Deakin, SYCL Working Group Chair for Khronos Group, and assistant professor in Advanced Computer Systems at the University of Bristol states:
“SYCL 2020 enables productive heterogeneous computing today, providing the necessary controls to write high-performance parallel software for the complex reality of today’s software and hardware. Intel’s commitment to supporting Open Standards is again showcased as they become a SYCL 2020 Khronos Adopter. Intel’s conformant implementation of SYCL 2020 in their latest Intel® oneAPI DPC++/C++ Compiler gives software developers the assurance they need that their code will be portable. Not only this, but Intel’s support for open standards has helped build a vibrant ecosystem of tools, libraries, and support for SYCL 2020 on CPUs, GPUs, and FPGAs.”
Over the last decade, Intel’s compiler engineering team doubled down on its commitment to open standards and delivered technical contributions to the open source developer community so that all boats can rise. The objective is to enable faster industry innovation by allowing software developers to design their applications once, recompile them, and maintain performance with little extra effort for a wide range of heterogeneous multiplatform environments.
The need for an industry-wide, efficient, and performant solution for software portability and reliability across all types of architectures and accelerators has been evident for over a decade. SYCL is the answer to that need. It is a widely accepted multiplatform abstraction layer that provides the common multivendor C++ framework mechanisms to:
- manage and find available computing devices,
- handle the data exchange between different compute engines / compute devices on any platform and
- assign work items to different accelerator compute engines for concurrent execution,
resulting in faster overall execution of many applications and AI solutions.
Figure 1: SYCL’s role in the open, standards-based multiplatform developer software stack.
SYCL forms the cornerstone of the oneAPI specification. oneAPI’s rich set of libraries, open backend APIs, and the Linux Foundation and UXL’s drive toward an open standards-based accelerated compute software ecosystem.
SYCL 2020 brings Multiplatform Programming to Modern C++
We actively contributed to formulating the SYCL 2020 specification and started integrating it step-by-step into our Intel oneAPI DPC++/C++ Compiler and the oneAPI specification immediately after its publication in 2021.
SYCL 2020 brought more than 40 improvements and new technical capabilities over its previous specification version.
The Intel oneAPI DPC++/C++ Compiler incorporated those into its design and collaborated with the LLVM* Compiler Infrastructure Project. Some of the key improvements SYCL 2020 adoption brought to developers using our compiler over the last few releases are:
- Unified Shared Memory (USM), enabling heterogeneous code targeting different devices to work naturally with standard C++ pointers without buffers or accessors.
- Parallel Reductions, adding a built-in reduction operation, providing maximum performance for hardware with builtin operations.
- Work Group and sub-group algorithms, enabling efficient operations between multiple work items.
- Class Template Argument Deduction (CTAD) and deduction guides to enable simpler class template instantiation.
- Simplification of Accessors, which adds a built-in reduction operation, enabling simplified C++ patterns.
- Expanded Interoperability with different backends, enabling support for backends other than Level Zero and OpenCL*, including interfaces to tie in proprietary closed-source runtimes or provide wrappers for hardware-specific code snippets.
- Improvements to Atomic Operations aligning closely to ISO C++ atomics enabling more parallel programming freedom.
Learn more in: Five Outstanding Additions to SYCL 2020
We All Benefit from a SYCL 2020 Conformant Compiler Implementation
The Intel oneAPI DPC++/C++ Compiler SYCL 2020 conformance, certified by the Khronos Group*, sets a marker for the evolution of SYCL and its increasing adoption across the industry. Now that we have a complete reference compiler implementation, it is possible to determine easily whether an application is correctly using SYCL. Developers can design and test their software with confidence, knowing that if their codebase compiles successfully with the Intel oneAPI DPC++/C++ compiler, a future SYCL conformant compiler for another set of hardware will be able to process the same source code with the only compatibility concerns being in hardware-specific optimizations, not in code correctness.
Thus, a software project rooted in multiplatform computing with C++ and SYCL is future-proof and can be maintained and evolve with future hardware platform needs adapting to new generations of accelerators and GPUs, including those from closed proprietary solution providers like AMD* and NVIDIA*.
This is the real beauty of Intel’s commitment to open frameworks and collaboration across the software industry, SYCL, the oneAPI specification, and its integration into UXL.
Figure 2: oneAPI software stack, built on SYCL, driven by UXL.
SYCL 2020, compilers built in conformance with it, and the rich ecosystem of APIs and solutions being developed by UXL Foundation members give software developers, data scientists, and researchers the confidence that their workloads can scale and adjust to the future, whether they live on the edge or in supercomputers.
“The motto of GROMACS is "Fast, Flexible, Free" – values that align with those of the SYCL standard. Starting in 2020, GROMACS began to utilize SYCL as a performance-portability backend, leveraging select features of SYCL 2020 even before its official standardization.
Compared to its predecessor, SYCL 1.2.1, the SYCL 2020 standard introduces several new features that are instrumental in enhancing both application performance and developer productivity. The achievement of the Intel® oneAPI DPC++/C++ Compiler in attaining certification as the first fully conformant SYCL 2020 toolchain marks a significant milestone for the widespread adoption of open standards in heterogeneous parallelization within high-performance computing.”
— Andrey Alekseenko, Researcher, SciLifeLab & KTH Royal Institute of Technology
Intel Compilers Push Forward with LLVM-based Performance
The latest Intel oneAPI DPC++/C++ Compiler is not only about its rich feature set and tight collaboration with open source standards organizations. It is also about continuously driving forward optimizations and performance on Intel® CPUs and GPUs.
Figure 3 below compares CoreMark-PRO benchmark results obtained on an Intel® Core™ i9-12900K Processor using different compilers.
Figure 3: CoreMark-PRO Benchmark Results for Intel Compiler on Intel® Core™ i9-12900K
Beyond ongoing performance improvements, our compiler engineering team also continues to add many new features to the Intel oneAPI DPC++/C++ Compiler in version 2024.1, such as
- A Graph extension to SYCL, allowing developers to use multi-threaded work generation and thread-safe functions seamlessly with assured efficient hardware resource management in their applications. It is now available on multiple SYCL backends, offering adaptability across diverse software and hardware stacks.
- Expanding LLVM Sanitizer support.
- Enhanced OpenMP* 5.x standards compliance.
For reliable, open, standards-based, portable, high-performance compiler technology to build your C/C++ application, you can trust the Intel oneAPI DPC++/C++ Compiler.
For an easy straightforward way to add SYCL 2020 conformant performance portability to your multiplatform parallel code and move from proprietary CUDA* implementations:
- Use the Intel® DPC++ Compatibility Tool or its open-source counterpart Sylcomatic.
- Take the resulting code and compile it with the Intel oneAPI DPC++/C++ Compiler ensuring SYCL 2020 conformance.
Let us move forward on the journey to open multiplatform computing together!
Steve
Download the Compiler Now
You can download the Intel oneAPI DPC++/C++ Compiler on Intel’s oneAPI Developer Tools product page.
This version is also in the Intel® oneAPI Base Toolkit, which includes an advanced set of foundational tools, libraries, analysis, debug and code migration tools.
You may also want to check out our contributions to the LLVM compiler project on GitHub.
Additional Resources
- Intel Develpment Tools 2024.1 Feature Update Overview
- Learn C++ with SYCL* in an Hour [1:01:37]
- Reinders, James et al., Data Parallel C++: Programming Accelerated Systems Using C++ and SYCL , 2nd Edition. Springer Apress, 2023
- Find Bugs Quickly Using Sanitizers with the Intel® oneAPI DPC++/C++ Compiler
- SYCL* Interoperability: A Deep Dive into Bridging CUDA* and oneAPI
- Migrate from CUDA* to C++ with SYCL*
- LLVM-based Projects from Intel
About the Author
Steve is an accomplished technology professional and corporate executive who treasures the insanely curious and is passionate about lifelong learning. He is vice president and general manager at Intel, leading a worldwide engineering organization responsible for CPU and GPU compilation technologies. Previously he was an executive responsible for strategy, product management, research and development, and software design at IBM leading Enterprise Products and Compilers.
Notices and Disclaimers
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex. Results may vary.
Performance results are based on testing as of dates shown in configurations and may not reflect all publicly available updates.
Intel optimizations, for Intel compilers or other products, may not optimize to the same degree for non-Intel products.
No product or component can be absolutely secure. Your costs and results may vary.
Intel technologies may require enabled hardware, software or service activation.
Intel does not control or audit third-party data. You should consult other sources to evaluate accuracy.
© Intel Corporation. Intel, the Intel logo, Xeon, Arc and other Intel marks are trademarks of Intel Corporation or its subsidiaries.
*Other names and brands may be claimed as the property of others. SYCL is a trademark of the Khronos Group Inc. Khronos and the Khronos Group logo are registered trademarks of the Khronos Group Inc.