Introduction
- oneAPI focuses on HPC (High-Performance Computing).
- A part of oneAPI is DPC++ (Data Parallel C++).
- It provides parallelism for heterogeneous systems.
- DPC++ uses SYCL as programming model.
- It’s compiler dpcpp is based on Clang/LLVM.
This allows you to run parallelized computations on the GPU without the need to distinguish between CUDA (NVIDIA) and ROCm (AMD).
Workflow
SYCL/C++ code
(containing e.g. sycl::queue.parallel_for)
↓
dpcpp
↓
-----------------
↓ ↓
CPU code GPU Code
x64/ARM/... - Intel: SPIR-V (via LLVM SPIR)
- NVIDIA: PTX (via LLVM NVPTX)
- AMD: HSACO (via LLVM AMDGPU)
↓ ↓
-----------------
↓
Executable
(contains CPU/GPU code and links SYCL runtime)