In this session we will learn about the steps involved in migrating CUDA code to C++ SYCL code using the SYCLomatic tool. We will install SYCLomatic tool on CUDA Development machine and start with migrating a simple CUDA code to understand all the useful command line options of the SYCLomatic tool.
We will inspect the migrated SYCL code and compare it with the CUDA source to understand how migration was accomplished. We will compile and run the migrated C++ SYCL code on Intel CPUs and GPUs.
Next, we will migrate a CUDA sorting algorithm from Nvidia CUDA samples to SYCL using SYCLomatic tool and then compile/run it on Intel GPU.
In this session we will mainly try to understand how memory allocation and memory copy is accomplished in CUDA versus SYCL, we will also look at how a kernel is offloaded to run on GPU in CUDA versus SYCL.
IMPORTANT: These sessions involve 2 steps, One is migrating the CUDA source and two is executing migrated SYCL source on Intel CPUs/GPUs. The audience is expected to have a CUDA development machine ready for this workshop, we will install SYCLomatic tool on the CUDA development and then migrate the CUDA source to SYCL. Once the code migration is complete, we will transfer the migrated SYCL source to Intel Developer Cloud to compile, execute and optimize on Intel CPUs/GPUs. If you do not have a CUDA development machine available, you can just watch the demonstration of step one, CUDA to SYCL migration and then do the step two on Intel Developer Cloud.