3.9 OpenCL concepts
Summary of the concepts used in OpenCL.
- OpenCL primarily uses data parallel processing.
- Computations in OpenCL are performed
by pieces of code called kernels that execute
on compute devices. Compute devices can be
application processors or GPUs.
- The data processed by OpenCL is in an index space of work-items.
The work-items are organized in an NDRange.
- One kernel instance is executed for each work-item
in the index space.
- Kernel instances can execute in parallel.
- You group work-items together to form work-groups.
The work-items in a work-group can communicate with each other using
shared data buffers, but access to the buffers must be synchronized
with barrier operations.
- Work-groups typically do not directly share data
with each other. They can share data using global memory and atomic
- You can issue multiple work-groups for execution