By Jie Lin (Auber) jie.lin@intel.com
Intel® oneAPI Data Parallel C++ (DPC++) is an open-source LLVM-technology based implementation of SYCL* which is an alternative to single-vendor proprietary accelerator programming languages and allows to have a single source code that addresses multiple hardware architectures (CPU, GPU, FPGA). However, starting from scratch to rewrite existing application is time-consuming if not unreachable in most cases.
The Intel® DPC++ Compatibility Tool minimizes code-migration time and assists in the migration of a developer's program that is written in CUDA* to a program written in DPC++ by generating DPC++ code for the developer wherever possible. For small CUDA* programs, using the Compatibility Tool can be as simple as running the ‘dpct’ command to migrate a CUDA* source file to DPC++ while for some large projects that employ CUDA* components, the Compatibility Tool may not port all of the code and instead mark some portions in the output DPC++ code for the developer to edit manually while still migrating the rest. Below picture shows the high-level workflow of the Compatibility Tool:
This presentation started by briefly introducing the workflow and the Compatibility Tool components associated with migrating either a single source file or a larger codebase. Following the introduction, the presenter shares his experiences with migrating large-scale CMAKE based CUDA* project to DPC++ with the help of the tool. The presentation addresses the basic porting process, required manual steps, and issues faced with CUDA* texture migration. Besides these procedural steps, the presenter demonstrates several experimental features of the tool aiming to specific kind of CUDA* code and points out new features in Intel® DPC++ Compatibility Tool 2022 release that could ease the build and packaging of the output DPC++ project.
The presentation also points out several known issues of the Compatibility Tool (will be fixed or enhanced in future releases) and provides workarounds.
Attached collateral here.