Programming Guide


CPU Flow

The CPU is typically called the brain of the computer. The CPU consists of complex circuitry/algorithms that include branch predictors, memory virtualization and instruction scheduling, etc. Given this complexity, it is designed to handle a wide-range of tasks.
The SYCL* and OpenMP* offload programming model enables implementation of an application on heterogenous CPU and GPU systems. The term “devices” in SYCL and OpenMP offload can refer to both CPUs and GPUs.
Modern CPUs have many cores with hyper-threads and high SIMD width, which can be used for parallel computation. If your workloads have regions that are compute intensive and can be run in parallel, it is a good idea to offload those regions to a CPU than to a coprocessor, such as a GPU or FPGA. Also, because data does not need to be offloaded through PCIe (unlike for coprocessors or GPU), latency is reduced with minimal data transfer overhead.
There are two options for running an application on a CPU: the traditional CPU flow that runs directly on the CPU or a CPU offload flow that runs on a CPU device. You can use CPU offload with either SYCL or OpenMP offload applications. Both OpenMP offload and SYCL offload applications use the OpenCL™ runtime and Intel® oneAPI Threading Building Blocks (Intel® oneTBB) to run on a CPU as a device.
Unsure whether your workload fits best on CPU, GPU, or FPGA? Compare the benefits of CPUs, GPUs, and FPGAs for different oneAPI compute workloads.

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at