Why OpenCL Came into Picture
The emphasis began to shift from automatically extracting instruction-level parallelism at run time to explicitly identifying thread-level parallelism at coding time. Highly parallel multicore devices are beginning to emerge with a general trend of containing multiple simpler processors where more of the transistors are dedicated to computation rather than caching and extraction of parallelism. These devices range from multicore CPUs, which commonly have 2, 4, or 8 cores, to GPUs consisting of hundreds of simple cores optimized for data-parallel computation. To achieve high performance on these multicore devices, the programmer must explicitly code their applications in a parallel fashion. Each core must be assigned work in such a way that all cores can cooperate to execute a particular computation.
Considering the need for creating parallel programs for the emerging multicore era, it was recognized that there needs to be a standard model for creating programs that will execute across all of these quite different devices. The lack of a standard that is portable across these different programmable technologies has plagued programmers. In the summer of 2008, Apple submitted a proposal for an OpenCL (Open Computing Language) draft specification to The Khronos Group in an effort to create a cross-platform parallel programming standard. The Khronos Group consists of a consortium of industry members such as Apple, IBM, Intel, AMD, NVIDIA,Altera, and many others. This group has been responsible for defining the OpenCL 1.0, 1.1, and 1.2 specifications. The OpenCL standard allows for the implementation of parallel algorithms that can be ported from platform to platform with minimal recoding. The language is based on C programming language and contains extensions that allow for the specification of parallelism.
OpenCL Design Requriements
Use all computational resources in system
CPUs,GPUs and other processors
Support data and task level paralllel models
Efficient C-based parallel programming model
Abstract the specifics of Underlying hardware
Protable high performance
Implementable on range of embedded, desktop and server systems
Drive Future hardware requirements
Use all computational resources in system
CPUs,GPUs and other processors
Support data and task level paralllel models
Efficient C-based parallel programming model
Abstract the specifics of Underlying hardware
Protable high performance
Implementable on range of embedded, desktop and server systems
Drive Future hardware requirements
Implementers of OpenCL
- AMD
- ARM
- Intel
- Apple, Inc.
- Vivante Corporation
- STMicroelectronics International NV
- IBM Corporation
- Imagination Technologies
- Creative Labs
- NVIDIA
No comments:
Post a Comment