Cel mai bun răspuns
Folosesc OpenGL în aplicațiile Computer Graphics de aproape 10 ani acum.
OpenGL este utilizat mai ales pentru grafica computerizată, este un API grafic. OpenCL este utilizat mai ales pentru calcul paralel, este un API de calcul.
Puteți utiliza OpenGL pentru a rezolva unele probleme pe care le rezolvați de obicei cu OpenCL, dar va trebui să vă asociați problema la contextul grafic pentru a vă putea face calculul.
Cred că principalul motiv pentru care alegeți OpenGL pentru sarcini care nu sunt redate este să susțineți hardware mai vechi care nu poate rula OpenCL.
Open Graphics Library ( OpenGL ) este un limbă încrucișată , cross-platform interfață de programare a aplicației (API) pentru redarea 2D și 3D grafică vectorială . API-ul este de obicei folosit pentru a interacționa cu un unitate de procesare grafică (GPU), pentru a realiza accelerat hardware randare .
Silicon Graphics Inc., (SGI) a început să dezvolte OpenGL în 1991 și l-a lansat în ianuarie 1992; aplicațiile îl folosesc extensiv în câmpurile proiectare asistată de computer (CAD), realitate virtuală , vizualizare științifică , vizualizare a informațiilor, simulare de zbor și jocuri video . OpenGL este gestionat de tehnologia non-profit consorțiu Grupul Khronos . (din Wikipedia OpenGL )
Limbaj de calcul deschis ( OpenCL ) este un cadru pentru scrierea programelor care se execută în eterogene platforme formate din unități centrale de procesare (CPU), unități de procesare grafică (GPU-uri), procesoare digitale de semnal ( DSPs ), matrice de porți programabile în câmp (FPGA) și alte procesoare sau acceleratoare hardware. OpenCL specifică un limbaj (bazat pe C99 ) pentru programarea acestor dispozitive și interfețe de programare a aplicației ( API-uri) pentru a controla platforma și a executa programe pe dispozitivele de calcul. OpenCL oferă o interfață standard pentru calcul paralel utilizând paralelism bazat pe sarcini și pe date. OpenCL este un standard deschis menținut de consorțiul tehnologic non-profit Khronos Group . (din Wikipedia OpenCL )
Răspuns
Pe lângă asemănarea numelui, acestea sunt fiare foarte diferite. OpenCL înseamnă Open Computing Language. Este un limbaj care vă permite să creați nuclee de programe care pot funcționa în paralel pe GPU sau CPU. OpenCL este de obicei utilizat pentru algoritmi de procesare a imaginilor, simulări fizice și returnează rezultate numerice. Cu alte cuvinte, ieșirea unui program OpenCL nu are caracter grafic.
În schimb, OpenGL este un API grafic care vă permite să trimiteți comenzi de redare către GPU. De obicei, scopul este de a afișa redarea pe ecran.