• 2019 Update 4
  • 03/20/2019
  • Public Content
Contents

Basic Concepts

The following are the basic OpenCL™ concepts used in this document. The concepts are based on notions in OpenCL specification that defines:
  • Compute unit
    - an OpenCL device has one or more compute units. A work-group executes on a single compute unit. A compute unit is composed of one or more processing elements and local memory. A compute unit can also include dedicated texture sampling units that can be accessed by its processing elements.
  • Device
    - a collection of compute units.
  • Command-queue
    is an object that holds commands to be executed on a specific device. Examples of commands include executing kernels, or reading and writing memory objects.
  • Kernel
    - a function declared in an OpenCL program and executed on an OpenCL device. A kernel is identified by the
    __kernel
    or
    kernel
    qualifier applied to any function defined in a program.
  • Work-item
    - one of a collection of parallel executions of a kernel invoked on a device by a command. A work-item is executed by one or more processing elements as part of a work-group executing on a compute unit. A work-item is distinguished from other executed work-items within the collection by its global ID and local ID.
  • Work-group
    - a collection of related work-items that execute on a single compute unit. The work-items in the group execute the same kernel and share local memory and work-group barriers. Each work-group has the following properties:
    • Data sharing between work-items via local memory
    • Synchronization between work-items via barriers and memory fences
    • Special work-group level built-in functions, such as
      work_group_copy
      .
When launching the kernel for execution, the host code defines the grid dimensions, or the global work size. The host code can also define the partitioning to work-groups, or leave it to the implementation. During the execution, the implementation runs a single work-item for each point on the grid. It also groups the execution on compute units according to the work-group size.
The order of execution of work-items within a work-group, as well as the order of work-groups, is implementation-specific.
See Also
User Manual - OpenCL™ Code Builder Overview Presentations of the OpenCL Standard at http://www.khronos.org/registry/

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.