Difference between revisions of "OpenCL"

From Chessprogramming wiki
Jump to: navigation, search
m (fix)
m (added reference)
 
Line 2: Line 2:
  
 
'''OpenCL''', (Open Computing Language)<br/>
 
'''OpenCL''', (Open Computing Language)<br/>
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]].
+
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<ref>[https://en.wikipedia.org/w/index.php?title=OpenCL&oldid=1226652394]Wikipedia contributors. (2024, June 1). OpenCL. In Wikipedia, The Free Encyclopedia. Retrieved 13:48, July 7, 2024</ref>. 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 =
 
= Specifications =

Latest revision as of 14:50, 7 July 2024

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[1]. OpenCL is maintained by the nonprofit technology consortium Khronos Group, adopted by Apple[2], Intel, Qualcomm, AMD, Nvidia, Altera, Samsung, Vivante, Imagination Technologies and ARM.

Specifications

OpenCL to Vulkan

The OpenGL graphics API specified by Khronos Group is deprecated in favor for Vulkan, since Vulkan and OpenCL v1.2/v2.x share SPIR-V as an intermediate representation it is possible to cross-compile OpenCL code via SPIR-V to run on Vulkan enabled devices [3].

Chess Projects

Publications

Forum Posts

External Links

References

  1. [1]Wikipedia contributors. (2024, June 1). OpenCL. In Wikipedia, The Free Encyclopedia. Retrieved 13:48, July 7, 2024
  2. OpenGL, OpenCL deprecated in favor of Metal 2 in macOS 10.14 Mojave
  3. clspv by Google on GitHub
  4. Programming with OpenCL C | Writing a Data-Parallel Kernel Using OpenCL C | InformIT

Up one Level