Last Revision Date: 10/6/09 Page 17
Relaxed Consistency: A memory consistency model in which the contents of memory visible to
different work-items or commands may be different except at a barrier or other explicit
synchronization points.
Resource: A class of objects defined by OpenCL. An instance of a resource is an object. The
most common resources are the context, command-queue, program objects, kernel objects, and
memory objects. Computational resources are hardware elements that participate in the action
of advancing a program counter. Examples include the host, devices, compute units and
processing elements.
Retain, Release: The action of incrementing (retain) and decrementing (release) the reference
count using an OpenCL object. This is a book keeping functionality to make sure the system
doesn’t remove an object before all instances that use this object have finished. Refer to
Reference Count.
Sampler: An object that describes how to sample an image when the image is read in the kernel.
The image read functions take a sampler as an argument. The sampler specifies the image
addressing-mode i.e. how out-of-range image coordinates are handled, the filtering mode, and
whether the input image coordinate is a normalized or unnormalized value.
SIMD: Single Instruction Multiple Data. A programming model where a kernel is executed
concurrently on multiple processing elements each with its own data and a shared program
counter. All processing elements execute a strictly identical set of instructions.
SPMD: Single Program Multiple Data. A programming model where a kernel is executed
concurrently on multiple processing elements each with its own data and its own program
counter. Hence, while all computational resources run the same kernel they maintain their own
instruction counter and due to branches in a kernel, the actual sequence of instructions can be
quite different across the set of processing elements.
Task Parallel Programming Model: A programming model in which computations are
expressed in terms of multiple concurrent tasks where a task is a kernel executing in a single
work-group of size one. The concurrent tasks can be running different kernels.
Thread-safe: An OpenCL API call is considered to be thread-safe if the internal state as
managed by OpenCL remains consistent when called simultaneously by multiple host threads.
OpenCL API calls that are thread-safe allow an application to call these functions in multiple
host threads without having to implement mutual exclusion across these host threads.
Undefined: The behavior of an OpenCL API call, built-in function used inside a kernel or
execution of a kernel that is explicitly not defined by OpenCL. A conforming implementation is
not required to specify what occurs when an undefined construct is encountered in OpenCL.
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.