Developer Guide and Reference

  • 2022.2
  • 09/08/2022
  • Public Content

Migrate a Project

The Intel® DPC++ Compatibility Tool ports CUDA* language kernels and library API calls to SYCL for the Intel® oneAPI DPC++/C++ Compiler. Typically, 90%-95% of CUDA code automatically migrates to SYCL*. The tool inserts inline comments during migration to help you complete the remaining code migration.
Intel® DPC++ Compatibility Tool migration workflow overview:
  1. Prepare CUDA source for migration
    Start with a running CUDA project that can be built and run. The Intel® DPC++ Compatibility Tool looks for CUDA headers, so make sure the headers are accessible to the tool.
  2. Migrate your project
    To generate annotated SYCL code, run the Intel® DPC++ Compatibility Tool with the original source as input to the tool.
    For simple projects, you can use file-to-file migration, with the option to migrate all files at once or to migrate files one-by-one.
    For complex projects, you can utilize the Microsoft Visual Studio* project file or Make/Cmake file to build a compilation database, used to migrate the complete project.
  3. Review converted code
    Output files contain annotations to help migrate any remaining code that could not be automatically migrated. Inspect the converted code, review the annotations to help manually convert unmigrated code, and look for potential code improvements.
  4. Build the project with the Intel® oneAPI DPC++/C++ Compiler
    Make sure your newly migrated project compiles successfully with the Intel® oneAPI DPC++/C++ Compiler.
* Intel estimates as of September 2021. Based on measurements on a set of 70 HPC benchmarks and samples, with examples like Rodinia, SHOC, PENNANT. Results may vary.

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at