OpenCL

OpenCL API
Original author(s)Apple Inc.
Developer(s)Khronos Group
Initial releaseAugust 28, 2009; 15 years ago (2009-08-28)
Stable release
3.0.17[1] Edit this on Wikidata / 24 October 2024; 29 days ago (24 October 2024)
Written inC with C++ bindings
Operating systemAndroid (vendor dependent),[2] FreeBSD,[3] Linux, macOS (via Pocl), Windows
PlatformARMv7, ARMv8,[4] 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[5]

OpenCL C 3.0 revision V3.0.11[6]

C++ for OpenCL 1.0 and 2021[7]

/ December 20, 2021; 2 years ago (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.[8][9]

  1. ^ "The OpenCL Specification".
  2. ^ "Android Devices With OpenCL support". Google Docs. ArrayFire. Retrieved April 28, 2015.
  3. ^ "FreeBSD Graphics/OpenCL". FreeBSD. Retrieved December 23, 2015.
  4. ^ "Conformant Products". Khronos Group. Retrieved May 9, 2015.
  5. ^ Sochacki, Bartosz (July 19, 2019). "The OpenCL C++ 1.0 Specification" (PDF). Khronos OpenCL Working Group. Retrieved July 19, 2019.
  6. ^ Munshi, Aaftab; Howes, Lee; Sochaki, Barosz (April 27, 2020). "The OpenCL C Specification Version: 3.0 Document Revision: V3.0.7" (PDF). Khronos OpenCL Working Group. Archived from the original (PDF) on September 20, 2020. Retrieved April 28, 2021.
  7. ^ "The C++ for OpenCL 1.0 and 2021 Programming Language Documentation". Khronos OpenCL Working Group. December 20, 2021. Retrieved December 2, 2022.
  8. ^ "Conformant Companies". Khronos Group. Retrieved September 19, 2024.
  9. ^ Gianelli, Silvia E. (January 14, 2015). "Xilinx SDAccel Development Environment for OpenCL, C, and C++, Achieves Khronos Conformance". PR Newswire. Xilinx. Retrieved April 27, 2015.