Khronos group has released 1.0 specification on it’s site as PDF file and header files. PDF is a big 302 pages document and will be required reading for all keen developers.
What is OpenCL? From their definition it is:
OpenCL (Open Computing Language) is the first open, royalty-free standard for general-purpose parallel programming of heterogeneous systems. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for high-performance compute servers, desktop computer systems and handheld devices using a diverse mix of multi-core CPUs, GPUs, Cell-type architectures and other parallel processors such as DSPs.
OpenCL is created with several goals in mind. These include having open, royalty free standard for heterogeneous parallel computing, cross vendor software portability, creating foundation layer for parallel computing ecosystem.
Anatomy of OpenCL
Language Specification
- C-based cross-platform programming interlace
- Subset of ISO C99 with language extensions - familiar to developers
- Well-defined numerical accuracy - IEEE 754 rounding behavior with defined maximum error
- Online or offline compilation and build of compute kernel executables
Includes a rich set of built-in functions
- A hardware abstraction layer over diverse computational resources
- Query, select and initialize compute devices
- Create compute contexts and command-queues
- Execute compute kernels
- Manage scheduling, compute, and memory resources
Memory model
What is next? Khronos will release conformance tests to ensure high quality implementations. This of course means we have wait to get first applications built on 1.0 specification of OpenCL. OpenGL is proven technology and implemented in thousands of applications. OpenCL has great potential since it is designed to integrate with OpenGL and other 3D APIs.
Time will tell how good it is.
No comments:
Post a Comment