Intel Open-Sources SYCLomatic Migration Tool to Help Developers Create Heterogeneous Code
SYCLomatic opens development and frees developers to create portable heterogeneous code.
This press release features multimedia. View the full release here: https://www.businesswire.com/news/home/20220519005346/en/
SYCLomatic assists developers in porting CUDA code to SYCL, typically migrating 90-95% of CUDA code automatically to SYCL code. To finish the process, developers complete the rest of the coding manually and then custom-tune to the desired level of performance for the architecture. (Credit:
“Migrating to C++ with SYCL gives code stronger ISO C++ alignment, multivendor support to relieve vendor lock-in and support for multiarchitecture to provide flexibility in harnessing the full power of new hardware innovations. SYCLomatic offers a valuable tool to automate much of the work, allowing developers to focus more on custom tuning than porting.”
Why It Matters: While hardware innovation has led to a diverse heterogeneous architectural landscape for computing, software development has become increasingly complex, making it difficult to take full advantage of CPUs and accelerators. Today’s developers and their teams are strapped for time, money and resources to accommodate the rewriting and testing of code to boost application performance for these different architectures. Developers are looking for open alternatives that improve time-to-value, and Intel is providing an easier, shorter pathway to enabling hardware choice.
What is SYCL and Project SYCLomatic: SYCL, a C++-based
Utilizing the Apache 2.0 license with LLVM exception, the SYCLomatic project hosted on GitHub offers a community for developers to contribute and provide feedback to further open heterogeneous development across CPUs, GPUs and FPGAs.
How the SYCLomatic Tool Works: SYCLomatic assists developers in porting CUDA code to SYCL, typically migrating 90-95% of CUDA code automatically to SYCL code2. To finish the process, developers complete the rest of the coding manually and then custom-tune to the desired level of performance for the architecture.
How Code Migration Usage Works: Research organizations and Intel customers have successfully used the Intel® DPC++ Compatibility Tool, which has the same technologies as SYCLomatic,to migrate CUDA code to SYCL (or Data Parallel C++, oneAPI’s implementation of SYCL) on multiple vendors’ architectures. Examples include the
Where to Get SYCLomatic: SYCLomatic is a GitHub project. The GitHub portal includes a “contributing.md” guide describing the steps for technical contributions to the project to ensure maximum ease. Developers are encouraged to use the tool and provide feedback and contributions to advance the tool’s evolution.
“CRK-HACC is an N-body cosmological simulation code actively under development. To prepare for Aurora, the Intel DPC++ Compatibility Tool allowed us to quickly migrate over 20 kernels to SYCL. Since the current version of the code migration tool does not support migration to functors, we wrote a simple clang tool to refactor the resulting SYCL source code to meet our needs. With the open source SYCLomatic project, we plan to integrate our previous work for a more robust solution and contribute to making functors part of the available migration options,” said
Resources for Developers:
- SYCLomatic project on GitHub | Contributing.md guide
- Get started developing: Book: Mastering Programming of Heterogeneous Systems using C++ & SYCL | Essentials of SYCL training
- CodeProject: Using oneAPI to convert CUDA code to SYCL
- Intel® DevCloud: A free environment to access Intel® oneAPI Tools and develop and test code across a variety of Intel® architectures (CPU, GPU, FPGA).
Intel (Nasdaq: INTC) is an industry leader, creating world-changing technology that enables global progress and enriches lives. Inspired by Moore’s Law, we continuously work to advance the design and manufacturing of semiconductors to help address our customers’ greatest challenges. By embedding intelligence in the cloud, network, edge and every kind of computing device, we unleash the potential of data to transform business and society for the better. To learn more about Intel’s innovations, go to newsroom.intel.com and intel.com.
1SYCL is a trademark of the
2Intel estimates as of
3The GROMACS development team ported its CUDA code to Data Parallel C++ (DPC++), which is a SYCL implementation for oneAPI, in order to create new cross-architecture-ready code. See also Experiences adding SYCL support to GROMACS, and GROMACS 2022 Advances Open Source Drug Discovery with oneAPI.
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.
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.