A single kernel execution can run on all or many of the PEs in parallel. : 17 A single compute device typically consists of several compute units, which in turn comprise multiple processing elements (PEs). Functions executed on an OpenCL device are called " kernels". It defines a C-like language for writing programs. OpenCL views a computing system as consisting of a number of compute devices, which might be central processing units (CPUs) or "accelerators" such as graphics processing units (GPUs), attached to a host processor (a CPU). 8 Portability, performance and alternatives.
2.2.3 Tooling and Execution Environment.2.2.2 Example: complex number arithmetic.2.1.1 Example: matrix-vector multiplication.Conformant implementations are available from Altera, AMD, ARM, Creative, IBM, Imagination, Intel, Nvidia, Qualcomm, Samsung, Vivante, Xilinx, and ZiiLABS. OpenCL is an open standard maintained by the non-profit technology consortium Khronos Group. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism. OpenCL specifies programming languages (based on C99, C++14 and C++17) for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. 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. AMD, Apple, freeocl, Gallium Compute, IBM, Intel Beignet, Intel SDK, Texas Instruments, Nvidia, POCL, Arm