We rely on you, the community, to help maintain this list of OpenCL implementations and the short descriptions used alongside each implementation are from the vendors own sites. If you have any updates please share them with us via our General Enquiry form.
The Khronos Group maintains a list of the products that have passed OpenCL Conformance testing at: https://www.khronos.org/conformance/adopters/conformant-products/opencl
Thanks for your help and support.
Commercial OpenCL Implementations
Intel is a strong supporter of OpenCL software technology. The Intel SDK for OpenCL Applications is a comprehensive development environment for developing and optimizing OpenCL applications on Intel platforms, and part of an increasingly rich portfolio of Intel tools for heterogeneous programming. The SDK supports offloading compute-intensive parallel workloads to Intel Graphics Technology using an advanced compiler for OpenCL kernels, runtime debugger, and code performance analyzer. The SDK and driver and run-time packages are installed separately.
The Intel FPGA SDK for OpenCL is a world class development environment that enables software developers to accelerate their applications by targeting heterogeneous platforms with Intel CPUs and FPGAs. This environment combines Intel’s state-of-the-art software development frameworks and compiler technology with the revolutionary, new Intel Quartus Prime Software to deliver next generation development environment that abstracts FPGA details while delivering optimized results. Intel FPGA SDK for OpenCL enables you to fully leverage the unique capabilities of FPGAs to deliver acceleration performance with power efficiency and low latency.
The ROCm (Radeon Open Compute) Platform fort Linux brings a rich foundation to advanced computing by seamlessly integrating the CPU and GPU with the goal of solving real-world problems. This software enables the high-performance operation of AMD GPUs for computationally oriented tasks. The ROCm 2.0.x platform supports Ubuntu, CentOS and RHEL.
The AMD APP SDK is a complete development platform created by AMD to allow you to quickly and easily develop applications accelerated by AMD Accelerated Parallel Processing technology. The SDK provides samples, documentation, and other materials to quickly get you started leveraging accelerated compute using OpenCL™, Bolt, or C++ AMP in your C/C++ application.
OpenCL support is included in the latest NVIDIA GPU drivers, available at: www.nvidia.com/drivers.
The arm Mali GPUs support OpenCL 1.2 (Midgard architecture) and OpenCL 2.0 (Bifrost architecture). Drivers are available from Arm for a number of development boards and the arm Compute Library provides a number of OpenCL kernels optimised for Mali GPUs as well as a runtime that can be integrated in third-party applications. OpenCL support is currently only available on Linux.
With the Qualcomm Adreno SDK, developers can take full advantage of the graphics and computation power provided by the Adreno GPU integrated into Qualcomm Snapdragon processors. The kit includes tools, libraries, samples, documentation, and tutorials to fast-track development. The SDK is a comprehensive resource that supports multiple versions of OpenGL ES, OpenCL, DirectX APIs and now also adds support for Vulkan. Developers are required to have a validated Qualcomm Developer Account to access the Adreno OpenCL SDK.
The PowerVR Rogue is a family of Graphics Cores from Imagination Technologies designed to perform both compute and graphics tasks. Its programmable core architecture allows for highly efficient and high performance compute execution. Developers may find the “PowerVRCompute Development Recommendations” documentation useful, which includes coverage of OpenCL 1.x and 2.0.
The Texas Instruments (TI) implementations of the Khronos OpenCL 1.1 specification are supported on a wide range of SoC/DSP processors and related evaluation Modules, including: Sitara AM57x, C6000 DSP + Arm 66AK2Ex, C6000 DSP + Arm 66AK2Hx and C6000 DSP + Arm 66AK2Gx and is included as part of TI’s free Processor SDK. TI’s OpenCL implementation has been extended with a set of features beyond the OpenCL 1.1 specification. These features were added in order to better support the execution of code on the C66x DSP, to enable existing DSP libraries, and to better map to TI’s devices, read more.
SDAccel, a member of the SDx family, offers a compiler, a debugger and a profiler. It supports standard OpenCL APIs to abstract the hardware platform and optimizes code to hardware as kernels running onto the FPGA acceleration board.
VeriSilicon’s Vivante VIP (Intelligent Pixel) family of silicon IP supports a common SDK and unified software that includes OpenCL 1.2 FP. Recent licensees of VeriSilicon’s IP include NXP for forthcoming i.MX products and Broadcom for Set-top Box system-on-chip (SoC) products.
Open Source OpenCL Implementations
The Intel Graphics Compute Runtime for OpenCL is an open source project to converge Intel’s development efforts on OpenCL compute stacks and replaces Beignet for Gen8 (Broadwell) and beyond graphics hardware architectures. As part of this effort the new and improved OpenCL Driver stack (informally known as “Neo”), is intended to replace both previous closed-source driver (aka “Classic”) as well as the Beignet driver. Following its initial release, Intel intends to actively develop and maintain the new driver, adding features, optimizations, and support for future platforms and encourages all the former users of Beignet and Classic to switch to Neo.
POCL is a portable open source (MIT-licensed) implementation of the OpenCL standard (1.2 with some 2.0 features supported). POCL uses Clang as an OpenCL C frontend and LLVM for kernel compiler implementation, and as a portability layer. Thus, if your desired target has an LLVM backend, it should be able to get OpenCL support easily by using pocl. POCL currently has backends supporting many CPUs, ASIPs (TCE/TTA), NVIDIA GPUs (via CUDA), HSA-supported GPUs and multiple private off-tree targets, including Think Silicon’s NEMA lowe-energy GPU.
Beignet is an open source implementation of the OpenCL specification – a generic compute oriented API. This code base contains the code to run OpenCL programs on Intel GPUs which basically defines and implements the OpenCL host functions required to initialize the device, create the command queues, the kernels and the programs and run them on the GPU.