Intel has released an open source tool to migrate code to SYCL through a project called SYCLomatic, which 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 adoption of the SYCL standard, a key step in freeing developers from a single-vendor proprietary ecosystem.
“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,” says James Reinders, Intel oneAPI evangelist. “SYCLomatic offers a valuable tool to automate much of the work, allowing developers to focus more on custom tuning than porting.”
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.
SYCL, a C++-based Khronos Group standard, extends C++ capabilities to support multiarchitecture and disjoint memory configurations. To initiate this project, Intel open-sourced the technology behind its DPC++ Compatibility Tool to further advance the migration capabilities for producing more SYCL-based applications. Reusing code across architectures simplifies development, reducing time and costs for ongoing code maintenance.
Utilising the Apache 2.0 licence 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.
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.