• 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

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804