Difference between revisions of "OpenCL"
m |
(added links to specs) |
||
Line 4: | Line 4: | ||
an open standard for cross-platform, task-based as well as data-based parallel programming of CPUs, [[GPU|GPUs]], [[FPGA|FPGAs]], [https://en.wikipedia.org/wiki/Digital_signal_processor DSPs], including the [[C|C99]] based programming language '''OpenCL C'''. | an open standard for cross-platform, task-based as well as data-based parallel programming of CPUs, [[GPU|GPUs]], [[FPGA|FPGAs]], [https://en.wikipedia.org/wiki/Digital_signal_processor DSPs], including the [[C|C99]] based programming language '''OpenCL C'''. | ||
OpenCL C forbids [[Recursion|recursion]], and omits [https://en.wikipedia.org/wiki/Function_pointer function pointers], [https://en.wikipedia.org/wiki/Bit_field bit fields] and [https://en.wikipedia.org/wiki/Variable-length_array variable-length] [[Array|arrays]], but has fixed-length vector types, supporting [[SIMD and SWAR Techniques|SIMD instructions]] if available on the target platforms. OpenCL 2.0 adds features like nested parallelism and shared virtual memory, version 2.1 extends OpenCL C to a subset of C++14. OpenCL 3.0 makes version 1.2 functionality a mandatory baseline with 2.x and 3.x as optional features and replaces 'OpenCL C++' with 'C++ for OpenCL' as a subset of C++17. OpenCL is maintained by the [https://en.wikipedia.org/wiki/Nonprofit_organization nonprofit] technology consortium [https://en.wikipedia.org/wiki/Khronos_Group Khronos Group], adopted by [[Apple]]<ref>[https://appleinsider.com/articles/18/06/04/opengl-opencl-deprecated-in-favor-of-metal-2-in-macos-1014-mojave OpenGL, OpenCL deprecated in favor of Metal 2 in macOS 10.14 Mojave]</ref>, [[Intel]], [https://en.wikipedia.org/wiki/Qualcomm Qualcomm], [[AMD]], [[Nvidia]], [https://en.wikipedia.org/wiki/Altera Altera], [https://en.wikipedia.org/wiki/Samsung Samsung], [https://en.wikipedia.org/wiki/Vivante_Corporation Vivante], [https://en.wikipedia.org/wiki/Imagination_Technologies Imagination Technologies] and [[ARM]]. | OpenCL C forbids [[Recursion|recursion]], and omits [https://en.wikipedia.org/wiki/Function_pointer function pointers], [https://en.wikipedia.org/wiki/Bit_field bit fields] and [https://en.wikipedia.org/wiki/Variable-length_array variable-length] [[Array|arrays]], but has fixed-length vector types, supporting [[SIMD and SWAR Techniques|SIMD instructions]] if available on the target platforms. OpenCL 2.0 adds features like nested parallelism and shared virtual memory, version 2.1 extends OpenCL C to a subset of C++14. OpenCL 3.0 makes version 1.2 functionality a mandatory baseline with 2.x and 3.x as optional features and replaces 'OpenCL C++' with 'C++ for OpenCL' as a subset of C++17. OpenCL is maintained by the [https://en.wikipedia.org/wiki/Nonprofit_organization nonprofit] technology consortium [https://en.wikipedia.org/wiki/Khronos_Group Khronos Group], adopted by [[Apple]]<ref>[https://appleinsider.com/articles/18/06/04/opengl-opencl-deprecated-in-favor-of-metal-2-in-macos-1014-mojave OpenGL, OpenCL deprecated in favor of Metal 2 in macOS 10.14 Mojave]</ref>, [[Intel]], [https://en.wikipedia.org/wiki/Qualcomm Qualcomm], [[AMD]], [[Nvidia]], [https://en.wikipedia.org/wiki/Altera Altera], [https://en.wikipedia.org/wiki/Samsung Samsung], [https://en.wikipedia.org/wiki/Vivante_Corporation Vivante], [https://en.wikipedia.org/wiki/Imagination_Technologies Imagination Technologies] and [[ARM]]. | ||
+ | |||
+ | = Specifications = | ||
+ | * [https://www.khronos.org/registry/OpenCL/specs/opencl-1.2.pdf OpenCL 1.2 Specification] | ||
+ | * [https://www.khronos.org/registry/OpenCL//sdk/1.2/docs/man/xhtml/ OpenCL 1.2 Reference] | ||
+ | * [https://www.khronos.org/registry/OpenCL/specs/opencl-2.0.pdf OpenCL 2.0 Specification] | ||
+ | * [https://www.khronos.org/registry/OpenCL/specs/2.2/pdf/OpenCL_C.pdf OpenCL 2.0 C Language Specification] | ||
+ | * [https://www.khronos.org/registry/OpenCL//sdk/2.0/docs/man/xhtml/ OpenCL 2.0 Reference] | ||
+ | * [https://www.khronos.org/registry/OpenCL/specs/3.0-unified/pdf/ OpenCL 3.0 Specifications] | ||
=Chess Projects= | =Chess Projects= | ||
Line 19: | Line 27: | ||
=External Links= | =External Links= | ||
+ | * [https://www.khronos.org/conformance/adopters/conformant-products/opencl Khronos - OpenCL Conformant Products] | ||
+ | * [https://www.khronos.org/opencl/ OpenCL - The open standard for parallel programming of heterogeneous systems] | ||
* [https://en.wikipedia.org/wiki/OpenCL OpenCL from Wikipedia] | * [https://en.wikipedia.org/wiki/OpenCL OpenCL from Wikipedia] | ||
− | |||
− | |||
* [https://code.google.com/archive/p/simple-opencl/ SimpleOpenCL - a library created to reduce the amount of host code needed to write an OpenCL program. - Google Project Hosting] | * [https://code.google.com/archive/p/simple-opencl/ SimpleOpenCL - a library created to reduce the amount of host code needed to write an OpenCL program. - Google Project Hosting] | ||
=References= | =References= | ||
<references /> | <references /> | ||
'''[[Languages|Up one Level]]''' | '''[[Languages|Up one Level]]''' |
Revision as of 08:53, 5 December 2021
Home * Programming * Languages * OpenCL
OpenCL, (Open Computing Language)
an open standard for cross-platform, task-based as well as data-based parallel programming of CPUs, GPUs, FPGAs, DSPs, including the C99 based programming language OpenCL C.
OpenCL C forbids recursion, and omits function pointers, bit fields and variable-length arrays, but has fixed-length vector types, supporting SIMD instructions if available on the target platforms. OpenCL 2.0 adds features like nested parallelism and shared virtual memory, version 2.1 extends OpenCL C to a subset of C++14. OpenCL 3.0 makes version 1.2 functionality a mandatory baseline with 2.x and 3.x as optional features and replaces 'OpenCL C++' with 'C++ for OpenCL' as a subset of C++17. OpenCL is maintained by the nonprofit technology consortium Khronos Group, adopted by Apple[1], Intel, Qualcomm, AMD, Nvidia, Altera, Samsung, Vivante, Imagination Technologies and ARM.
Contents
Specifications
- OpenCL 1.2 Specification
- OpenCL 1.2 Reference
- OpenCL 2.0 Specification
- OpenCL 2.0 C Language Specification
- OpenCL 2.0 Reference
- OpenCL 3.0 Specifications
Chess Projects
- Leela Chess Zero
- Oscar, a Perft project by Steven Edwards
- Zeta by Srdja Matovic
Publications
- Aaftab Munshi, Benedict Gaster, Timothy Mattsonm, James Fung, Dan Ginsburg (2011). OpenCL Programming Guide. InformIT [2]
- Wolfram Schenck (2017). OpenCL Basics. slides as pdf
Forum Posts
- Zeta, a chess engine in OpenCL by Srdja Matovic, CCC, March 17, 2010
- OpenCL perft() Technical Issues by Steven Edwards, CCC, August 26, 2014
External Links
- Khronos - OpenCL Conformant Products
- OpenCL - The open standard for parallel programming of heterogeneous systems
- OpenCL from Wikipedia
- SimpleOpenCL - a library created to reduce the amount of host code needed to write an OpenCL program. - Google Project Hosting