OpenCL

No s'ha de confondre amb OpenGL.
Cada invocació (work-item) del nucli pren una fila de la matriu verda (A al codi), multiplica aquesta fila amb el vector vermell (x) i col·loca el resultat en una entrada del vector blau (y). El nombre de columnes n es passa al nucli com a ncols; el nombre de files està implícit en el nombre d'elements de treball produïts pel programa amfitrió.

Open Computing Language (OpenCL) és un framework per a programes d'escriptura que s'executa mitjançant plataformes heterogènies consistents en unitats centrals de processament (CPU), unitats de procés gràfic (GPUs), processadors de senyals digitals (DSP), FPGAs i altres processadors o acceleradors de hardware.

OpenCL és un estàndard obert i lliure de royalties, per a la programació paral·lela de CPU's, GPU's i altres processadors, a fi i efecte de proporcionar als desenvolupadors l'accés portable i eficient a la potència d'aquestes plataformes de procés heterogènies.[1]

OpenCL admet una extensa gamma d'aplicacions, des de sistemes encastats, passant per aplicacions per al consumidor fins a solucions HPC (acrònim de Computació d'Alt Rendiment, també anomenada supercomputació).

OpenCL consisteix en una API per coordinar la computació paral·lela entre processadors heterogenis, i a més un llenguatge multiplataforma i una especificació de l'entorn de computació.

  • Suporta ambdós models de programació paral·lela, el basat en dades i el basat en tasques.
  • Utilitza un subconjunt del llenguatge C en la versió del 1999 C99 amb extensions per al paral·lelisme.
  • Defineix requeriments numèrics basats en l'estàndard IEEE 754.
  • Defineix un perfil de configuració per a dispositius de mà (PDA,..) i sistemes encastats.
  • Interacciona eficientment amb API's gràfiques com OpenGL, OpenGL ES i altres.
  1. «Khronos OpenCL Registry - The Khronos Group Inc». [Consulta: 20 desembre 2023].

Developed by StudentB