Gain Support for xPUs by Migrating CUDA* Code to DPC++

Speakers: Steffen Christgau & Marius Knaust, ZIB (Zuse Institute Berlin)

Data Parallel C++ (DPC++) is the C++ and SYCL-based programming language of choice in the oneAPI programming environment. It promises to have a single source code that addresses multiple hardware architectures. However, starting from scratch or rewriting existing applications is tedious if not out of the question in most cases. The Intel® DPC++ Compatibility Tool addresses this issue by assisting in the migration from CUDA to DPC++. 

In this talk, we share our experiences with migrating a typical CUDA stencil application code to DPC++ with the help of the tool. The presentation addresses the basic porting process, required manual steps, and issues we faced with the tsunami simulation easyWave. Besides these procedural steps, we point out performance numbers of the hardware devices supported by oneAPI and its evolving ecosystem. This is not limited to devices like Intel® CPUs and GPUs but includes promising numbers for CUDA hardware as well. We also demonstrate what needs to be done to execute the migrated, CUDA-originated code on FPGAs.

Additional Resources

Great Cross-Architecture Challenge—A Coding Challenge

Calling all C++, DPC++, and CUDA developers. We’re searching for the next oneAPI hero—someone who can write code that will run on the latest CPUs, GPUs, and FPGAs. Submit your best projects to win some amazing prizes.

Supercomputing 2020 (SC20) Recorded Sessions on oneAPI

Self-paced Trainings Using Jupyter* Notebooks

Sign Up for Intel® DevCloud for oneAPI

Join

Intel® DevMesh Community

Intel® ​Innovator Program​

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.