• 10/30/2018
  • Public Content
Contents

Basic Concepts

The list below explains basic OpenCL™ concepts used in this document. The concepts are based on definitions in Khronos* OpenCL specification.
  • Intel® CPU Runtime for OpenCL™ Applications
    enables OpenCL software technology support on Intel® Core™ and Intel® Xeon® Processors.
    Note
    Intel® CPU Runtime for OpenCL™ Applications was previously known as Intel® SDK for OpenCL™ - CPU only Runtime Package.
  • Intel® SDK for OpenCL™  Applications
    is a software development tool that enables developing, debugging, and analyzing OpenCL applications  targeting the Intel® Architecture processors with the Intel® Processor Graphics.
  • An OpenCL execution model
    is a principle of a kernel execution on target OpenCL device, defined by the host.
  • An OpenCL standard
    is the standard for parallel programming of modern processors.
  • A compute unit
    is composed of one or more processing elements and local memory. It may also include dedicated texture filter units that can be accessed by its processing elements. An OpenCL device has one or more compute units. A work-group executes on a single compute unit.
  • A device
    is a collection of compute units.
  • A command-queue
    is used to queue commands to a device. Examples of commands include executing kernels, or reading and writing memory objects.
  • A kernel
    is a function declared in a 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.
  • A work-item
    is 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 a 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.
  • A work-group
    is 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 by use of local memory
    • Synchronization between work-items by use of barriers and memory fences
    • Special work-group level built-in functions, such as
      work_group_copy
      A multi-core CPU or multiple CPUs (in a multi-socket machine) constitute a single CPU OpenCL device. Separate cores are compute units. For information on controlling the affinity by compute units using the device fission feature, refer to the OpenCL™ Device Fission for CPU Performance article.
  • A task-parallel programming model
    is the OpenCL programming model that runs a single work-group with a single work item.

See Also

OpenCL™ 1.2 Specification at https://www.khronos.org/registry/OpenCL/specs/opencl-1.2.pdf
Developer Guide for Intel® SDK for OpenCL™ Applications

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