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.
- 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.
|New to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux.|
|The largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you make informed decisions.|
|Hundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information.|
|Alternatives to Google's Products and Services examines your options to migrate from the Google ecosystem with open source Linux alternatives.|
|Alternatives to Microsoft's Products and Services recommends open source Linux software.|
|Alternatives to Adobe Cloud looks at free and open source alternatives to products available from Adobe Cloud's subscription service.|
|Alternatives to Apple recommends free and open source alternatives to Apple's proprietary world.|
|Alternatives to Corel surveys alternatives to Corel's range of graphics processing products and other software applications.|
|Getting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers.|
|Essential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users.|
|Linux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine.|
|Home computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum.|
|Now and Then examines how promising open source software fared over the years. It can be a bumpy ride.|
|Linux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged.|
|Linux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery.|
|Best Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series.|
|These best free books accelerate your learning of every programming language. Learn a new language today!|
|These free tutorials offer the perfect tonic to our free programming books series.|
|Stars and Stripes is an occasional series looking at the impact of Linux in the USA.|