OpenCL (Open Computing Language) is a multi-vendor open standard for general-purpose parallel programming of heterogeneous systems that include CPUs, GPUs and other processors.
Using the OpenCL API, developers can launch compute kernels written using a limited subset of the C programming language on a GPU. This language offers a a cross-vendor, non-proprietary solution.
OpenCL supports a wide range of applications, ranging from embedded and consumer software to HPC solutions. OpenCL is developed by multiple companies through the Khronos OpenCL committee.
Features include:
- Flexible execution model.
- Shared Virtual Memory – a single address space which is shared between the host and device.
- Dynamic Parallelism using task-based and data-based parallelism.
- Utilizes a subset of ISO C99 with extensions for parallelism.
- Defines consistent numerical requirements based on IEEE 754.
- Defines a configuration profile for handheld and embedded devices.
- Interoperates with OpenGL, OpenGL ES, and other graphics APIs.
- Generic address space removes the need to overload functions based on address space.
- Pipes – Built-in functions for kernels to read from or write to a pipe, providing straightforward programming of pipe data structures that can be highly optimized by OpenCL implementers.
- Blocks and device kernel creation.
- Optimised Image support: including support for 1D images and 1D/2D image arrays, 3D image reads and writes, read_write as a modifier for images, mip-mapped images as well as images with more than one sample per pixel.
Website: www.khronos.org/opencl
Support: Forums
Developer: Khronos Group
License: Not specified
OpenCL is written in C++ and C. Learn C++ with our recommended free books and free tutorials. Learn C with our recommended free books and free tutorials.
Return to New Programming Languages
| Explore Linux | |
|---|---|
| Best Free and Open Source Software - A huge collection of recommended free and open source software covering every major category. | |
| In-depth Linux Software Reviews - Detailed assessments of Linux software covering features, usability and overall quality. | |
| The Big List of Active Linux Distros - An extensive collection of actively developed Linux distributions. | |
| Open Source Alternatives - Alternatives to software and services from Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle and others. | |
| Essential Linux System Tools - Indispensable utilities for monitoring, maintaining and managing Linux systems. | |
| Linux Productivity Tools - Useful utilities for improving productivity and streamlining everyday tasks. | |
| Alternatives to Popular CLI Tools - Modern alternatives to familiar command-line utilities supplied with Linux systems. | |
| Awesome Free Linux Game Tools - Tools, utilities and companion software that improve gaming on Linux. | |
| Machine Learning on Linux - Machine learning and deep learning software, self-hosted applications and practical tools. | |
| Saving Money with Linux - Practical ways to reduce electricity consumption and lower computing costs with Linux. | |
| Linux Candy - Fun, entertaining and sometimes delightfully quirky software from the lighter side of Linux. | |

Please read our Comment Policy before commenting.