SYCL, like CUDA, offers developers the ability to write “single-source” C++ code that can be deployed and executed on parallel hardware architectures.
The guide in this section has been created to help CUDA developers understand the similarities and differences between CUDA and SYCL, and how they can transition their code to SYCL. The document assumes that you already know C++ and are proficient in CUDA, but we aim to offer a high level explanation of CUDA concepts and offer links to relevant documentation whenever possible.
The guide consists of various sections that will help you:
- An Introduction that explains how OpenCL and SYCL works
- An Execution Model section that explains the CUDA and SYCL execution models
- A Memory Model section that explains the models used in CUDA and SYCL
- A Libraries section that compares the libraries available for developers
- An Examples section that walks through various code samples in CUDA and SYCL
The code is also published online in our GitHub repository so that you can build
and test it on your own hardware.
These resources are based on OpenCL 1.2 and SYCL 1.2.1 specifications.
CUDA 9 is used as the reference CUDA version.
If you are looking for a general SYCL introduction, we also have a
SYCL Guide that takes you through all the fundamentals.