Through a project called SYCLomatic, Intel has released an open source tool to migrate code to SYCL1. This tool helps developers more easily port CUDA code to SYCL and C++ to accelerate cross-architecture programming for heterogeneous architectures. This open source project enables community collaboration to advance SYCL standard adoption, a critical step toward liberating developers from a single-vendor proprietary ecosystem.
Why It’s Important: While hardware innovation has resulted in a diverse heterogeneous computing architectural landscape, software development has become increasingly complex, making it difficult to fully utilise CPUs and accelerators. Today’s developers and teams are pressed for time, money, and resources to accommodate rewriting and testing code to improve application performance for these various architectures. Developers want open alternatives that improve time-to-value, and Intel is making it easier and faster to enable hardware choice.
What is SYCL and what is Project SYCLomatic? SYCL is a Khronos Group standard based on C++ that extends C++ capabilities to support multiarchitecture and disjoint memory configurations. To kick off this project, Intel open sourced the technology behind its DPC++ Compatibility Tool in order to advance migration capabilities for developing more SYCL-based applications. Reusing code across architectures simplifies development while also saving time and money on ongoing code maintenance.
The SYCLomatic project, hosted on GitHub, uses the Apache 2.0 licence with the exception of LLVM and provides 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, automatically migrating 90-95 percent of CUDA code2. To complete the process, developers manually complete the remaining coding and then custom-tune to the desired level of performance for the architecture.
The Intel® DPC++ Compatibility Tool, which uses the same technologies as SYCLomatic, has been used successfully by research organisations and Intel customers to migrate CUDA code to SYCL (or Data Parallel C++, oneAPI’s implementation of SYCL) on multiple vendors’ architectures. GROMACS 20223 at the University of Stockholm, easyWave at the Zuse Institute Berlin (ZIB), Samsung Medison, and Bittware are a few examples (view oneAPI DevSummit content for more examples). Argonne National Laboratory Aurora supercomputer, Leibniz Supercomputing Centre (LRZ), GE Healthcare, and others are also testing code on current and upcoming Intel® Xe architecture-based GPUs.
The SYCLomatic project is hosted on GitHub. To ensure maximum ease, the GitHub portal includes a “contributing.md” guide describing the steps for technical contributions to the project. Developers are encouraged to use the tool and provide feedback and contributions to help it evolve.
Developers’ Resources:
- GitHub SYCLomatic project | Contributing.md guide
- Begin by developing: Mastering Heterogeneous System Programming with C++ and SYCL | SYCL Training Essentials
- CodeProject: Converting CUDA code to SYCL using oneAPI
- Intel® DevCloud: A free environment for accessing Intel® oneAPI Tools and developing and testing code across multiple Intel® architectures (CPU, GPU, FPGA).