Wednesday 10 October 2012

Why OpenCL Came into Picture



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
 

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