OpenCL
| OpenCL API | |
|---|---|
| Original author(s) | Apple Inc. | 
| Developer(s) | Khronos Group | 
| Initial release | August 28, 2009 | 
| Stable release | 3.0.18 
   / 3 April 2025 | 
| Written in | C with C++ bindings | 
| Operating system | Android (vendor dependent), FreeBSD, Linux, macOS (via Pocl), Windows | 
| Platform | ARMv7, ARMv8, Cell, IA-32, Power, x86-64 | 
| Type | Heterogeneous computing API | 
| License | OpenCL specification license | 
| Website | www | 
| OpenCL C/C++ and C++ for OpenCL | |
|---|---|
| Paradigm | Imperative (procedural), structured, (C++ only) object-oriented, generic programming | 
| Family | C | 
| 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 | 
| Typing discipline | Static, weak, manifest, nominal | 
| Implementation language | Implementation specific | 
| Filename extensions | .cl .clcpp | 
| Website | www | 
| 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.