OpenCL

OpenCL API
Original author(s)Apple Inc.
Developer(s)Khronos Group
Initial releaseAugust 28, 2009 (2009-08-28)
Stable release
3.0.18  / 3 April 2025 (3 April 2025)
Written inC with C++ bindings
Operating systemAndroid (vendor dependent), FreeBSD, Linux, macOS (via Pocl), Windows
PlatformARMv7, ARMv8, Cell, IA-32, Power, x86-64
TypeHeterogeneous computing API
LicenseOpenCL specification license
Websitewww.khronos.org/opencl/
OpenCL C/C++ and C++ for OpenCL
ParadigmImperative (procedural), structured, (C++ only) object-oriented, generic programming
FamilyC
Stable release
OpenCL C++ 1.0 revision V2.2–11

OpenCL C 3.0 revision V3.0.11

C++ for OpenCL 1.0 and 2021

/ December 20, 2021 (2021-12-20)
Typing disciplineStatic, weak, manifest, nominal
Implementation languageImplementation specific
Filename extensions.cl .clcpp
Websitewww.khronos.org/opencl
Major implementations
AMD, Gallium Compute, IBM, Intel NEO, Intel SDK, Texas Instruments, Nvidia, POCL, Arm
Influenced by
C99, CUDA, C++14, C++17

OpenCL (Open Computing Language) is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators. OpenCL specifies a programming language (based on C99) for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism.

OpenCL is an open standard maintained by the Khronos Group, a non-profit, open standards organisation. Conformant implementations (passed the Conformance Test Suite) are available from a range of companies including AMD, Arm, Cadence, Google, Imagination, Intel, Nvidia, Qualcomm, Samsung, SPI and Verisilicon.