Migrate a Project

The Intel® DPC++ Compatibility Tool ports CUDA* language kernels and library API calls to Data Parallel C++ (DPC++) code. Typically, 90%-95% of CUDA code automatically migrates to DPC++ code*. The tool inserts inline comments during migration to help you complete the remaining code migration.

_images/diagram-oneapi-dpc-compat-tool-16x9.jpeg

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 DPC++ 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.