For extremely performance-critical code (such as low-level linear algebraic libraries), engineering work-arounds might become necessary to achieve the desired performance and portability goals. Ginkgo library developers demonstrate how such work-arounds might be applicable to other libraries.
Eric Nielson (a research scientist at NASA*) and Dr. Mohammad Zubair (a computer science professor at Old Dominion University) share their experiences with moving kernels optimized for CUDA* to oneAPI.
Erik Lindahl (a biophysics professor at the University of Stockholm who works on GROMACS) migrated CUDA code to SYCL. He used the Intel® DPC++ Compatibility Tool to create new cross-architecture-ready code.
The Intel DPC++ Compatibility Tool assists in migrating your existing CUDA code to SYCL code. To learn about this tool in an interactive JupyterLab environment, on your local machine, run this self-guided tutorial. A Jupyter* Notebook guides you through:
The migration of a simple example
Two real-world sample migrations from CUDA to SYCL (to help you with the entire porting process)
This graph-traversal motif belongs to a sorting networks class. It's a preferred algorithm for sorting batches of short-sized to mid-sized (key, value) array pairs.
Port Your Code
Migrate your existing CUDA code to a multiplatform program in SYCL.
Download the Software
The Intel® oneAPI Base Toolkit contains the Intel DPC++ Compatibility Tool. The tool ports CUDA language kernels and library API calls, migrating 80 percent to 90 percent of CUDA to SYCL. In addition, it generates in-line comments that help you finish writing and tuning your code.
Showcase your work, best practices, and migration experiences, and get noticed by Intel and fellow developers on Intel® DevMesh—Intel's community for developers and creators. Share your migration project today.