OpenCL

The open standard for parallel programming of heterogeneous systems

OpenCL™ (Open Computing Language) is the open, royalty-free standard for cross-platform, parallel programming of diverse processors found in personal computers, servers, mobile devices and embedded platforms. OpenCL greatly improves the speed and responsiveness of a wide spectrum of applications in numerous market categories from gaming and entertainment to scientific and medical software.
OpenCL 2.2 brings the OpenCL C++ kernel language into the core specification for significantly enhanced parallel programming productivity:

  1. OpenCL C++ kernel language is a static subset of the C++14 standard and includes classes, templates, lambda expressions, function overloads and many other constructs for generic and meta-programming
  2. Leverages the new Khronos SPIR-V™ 1.1 intermediate language which fully supports the OpenCL C++ kernel language
  3. OpenCL library functions can now take advantage of the C++ language to provide increased safety and reduced undefined behavior while accessing features such as atomics, iterators, images, samplers, pipes, and device queue built-in types and address spaces
  4. Pipe storage is new device-side type in OpenCL 2.2 that is useful for FPGA implementations by making connectivity size and type known at compile time, enabling efficient device-scope communication between kernels
  5. OpenCL 2.2 also includes features for enhanced optimization of generated code: applications can provide the value of specialization constant at SPIR-V compilation time, a new query can detect non-trivial constructors and destructors of program scope global objects, and user callbacks can be set at program release time

These new specifications are released in provisional form to enable developers and implementers to provide feedback before finalization.  Your feedback is always welcome on the OpenCL forums.

OpenCL 2.2

The OpenCL 2.2 Quick Reference Guide Online Reference Pages will be produced when the specification is finalized.

OpenCL 2.1

OpenCL 2.1 C++

  • The OpenCL 2.1 C++ Provisional Specification is available in the Khronos Registry

OpenCL 2.0

OpenCL 1.2

OpenCL 1.1

OpenCL 1.0

The OpenCL 1.0 Online Reference Pages

OpenCL Ecosystem

OpenCL Ecosystem

OpenCL 2.2

Defines C++ kernel language
  • Together with SYCL 2.2 for single source C++ programming
SPIR-V 1.1 adds OpenCL C++ support
  • Initializer and finalizer function execution modes for constructors and destructors
  • Named barriers, subgroup execution, and program scope pipes…
Runs on any OpenCL 2.0-capable hardware
  • Only driver update required
Provisional release
  • Seeking industry feedback before finalization
  • Aiming for finalization at SIGGRAPH or SC16 – depends on feedback

OpenCL 2.2

OpenCL C++

The OpenCL C++ kernel language is a static subset of C++14

  • Frees developers from low-level coding details without sacrificing performance

C++14 features removed from OpenCL C++ for parallel programming

  • Exceptions, Allocate/Release memory, Virtual functions and abstract classes Function pointers, Recursion and goto

Classes, lambda functions, templates, operator overloading etc…

  • Fast and elegant sharable code - reusable device libraries and containers
  • Templates enable meta-programming for highly adaptive software
  • Lambdas used to implement nested/dynamic parallelism

C++11-based standard library optimized for data-parallel programming

  • Atomics, meta-programming & type traits, math functions…
  • Plus new library features: Work-item & Work-group functions, Dynamic parallelism, Image & Pipe functions…

Highly adaptive parallel software that delivers tuned performance across diverse platforms

SPIR-V – Graphics/Compute ‘Rendezvous Spec’

SPIR-V Graphics/Compute - Rendezvous Spec

Implementers of OpenCL

  • Intel
  • Apple, Inc.
  • ARM Limited
  • QUALCOMM
  • Marvell
  • Vivante Corporation
  • MediaTek Inc
  • AMD
  • NVIDIA Corporation
  • Texas Instruments
  • Altera Corporation
  • Xilinx, Inc.
  • Imagination Technologies
  • STMicroelectronics International NV
  • IBM Corporation
  • Creative Labs
  • Samsung Electronics

View a complete list of companies and their conformant products.

safety