Bästa svaret
Jag har använt OpenGL i datorgrafikapplikationer i nästan tio år nu.
OpenGL används mest för datorgrafik, det är ett grafiskt API. OpenCL används mest för parallell beräkning, det är ett beräknings-API.
Du kan använda OpenGL för att lösa några problem som du vanligtvis löser med OpenCL men du måste kartlägga ditt problem till grafiskt sammanhang för att få din beräkning igång.
Jag tror att främsta anledningen till att du väljer OpenGL för icke-rendering uppgifter är att stödja äldre hårdvara som inte kan köra OpenCL.
Öppna grafikbiblioteket ( OpenGL ) är en tvärspråk , plattformsövergripande applikationsprogrammeringsgränssnitt (API) för rendering av 2D och 3D vektorgrafik . API används vanligtvis för att interagera med en grafikbehandlingsenhet (GPU), för att uppnå hårdvaruaccelererad rendering .
Silicon Graphics Inc., (SGI) började utveckla OpenGL 1991 och släppte det i januari 1992; applikationer använder den i stor utsträckning inom datorstödd design (CAD), virtual reality , vetenskaplig visualisering , informationsvisualisering, flygsimulering och videospel . OpenGL hanteras av ideell teknik konsortium Khronos Group . (från Wikipedia OpenGL )
Open Computing Language ( OpenCL ) är ett ram för att skriva program som körs över heterogena plattformar bestående av centrala processorenheter (CPU), grafikbehandlingsenheter (GPU: er), digitala signalprocessorer ( DSP: er ), fältprogrammerbara grindmatriser (FPGA) och andra processorer eller hårdvaruacceleratorer. OpenCL anger ett språk (baserat på C99 ) för programmering av dessa enheter och applikationsprogrammeringsgränssnitt ( API: er) för att styra plattformen och köra program på beräkningsenheterna. OpenCL tillhandahåller ett standardgränssnitt för parallell beräkning med uppgiftsbaserad och databaserad parallellitet. OpenCL är en öppen standard som upprätthålls av ideellt teknologikonsortium Khronos Group . (från Wikipedia OpenCL )
Svar
Förutom namnlikheten är de väldigt olika djur. OpenCL står för Open Computing Language. Det är ett språk som låter dig skapa programkärnor som kan fungera parallellt på GPU eller CPU. OpenCL används vanligtvis för bildbehandlingsalgoritmer, fysiska simuleringar och returnerar numeriska resultat. Med andra ord är utgången av ett OpenCL-program inte av grafisk karaktär.
Däremot är OpenGL ett grafiskt API som låter dig skicka renderingskommandon till GPU: n. Målet är vanligtvis att visa rendering på skärmen.