Beste svaret
Jeg har brukt OpenGL i Computer Graphics-applikasjoner i snart 10 år nå.
OpenGL brukes mest til datagrafikk, det er et grafisk API. OpenCL brukes mest til parallell databehandling, det er et beregnings-API.
Du kan bruke OpenGL til å løse noen problemer du vanligvis løser med OpenCL, men du må kartlegge problemet ditt til grafikkonteksten for å få beregningen i gang.
Jeg tror hovedårsaken til at du velger OpenGL for ikke-gjengivende oppgaver er å støtte eldre maskinvare som ikke kan kjøre OpenCL.
Åpne grafikkbiblioteket ( OpenGL ) er et tverspråk , cross-platform applikasjonsprogrammeringsgrensesnitt (API) for gjengivelse av 2D og 3D vektorgrafikk . API-et brukes vanligvis til å samhandle med en grafikkbehandlingsenhet (GPU), for å oppnå maskinvareakselerert gjengivelse .
Silicon Graphics Inc., (SGI) begynte å utvikle OpenGL i 1991 og ga ut det i januar 1992; applikasjoner bruker det mye i feltene datamaskinstøttet design (CAD), virtual reality , vitenskapelig visualisering , informasjonsvisualisering, flysimulering og videospill . OpenGL administreres av ideell teknologi konsortium Khronos Group . (fra Wikipedia OpenGL )
Åpent dataspråk ( OpenCL ) er et rammeverk for å skrive programmer som kjøres på tvers av heterogene plattformer bestående av sentrale prosesseringsenheter (CPUer), grafikkbehandlingsenheter (GPUer), digitale signalprosessorer ( DSPs ), feltprogrammerbare portarrays (FPGAer) og andre prosessorer eller maskinvareakseleratorer. OpenCL spesifiserer et språk (basert på C99 ) for programmering av disse enhetene og applikasjonsprogrammeringsgrensesnitt ( APIer) for å kontrollere plattformen og utføre programmer på beregningsenhetene. OpenCL gir et standardgrensesnitt for parallell databehandling ved hjelp av oppgavebasert og databasert parallellitet. OpenCL er en åpen standard opprettholdt av ideell teknologikonsortium Khronos Group . (fra Wikipedia OpenCL )
Svar
I tillegg til navnelikheten er de veldig forskjellige dyr. OpenCL står for Open Computing Language. Det er et språk som lar deg lage programkjerner som kan fungere parallelt på GPU eller CPU. OpenCL brukes vanligvis til bildebehandlingsalgoritmer, fysiske simuleringer og returnerer numeriske resultater. Med andre ord, utgangen av et OpenCL-program er ikke grafisk.
I motsetning er OpenGL et grafisk API som lar deg sende gjengivelseskommandoer til GPUen. Vanligvis er målet å vise gjengivelsen på skjermen.