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)