Jo, men OpenCLs styrka är väl att man kan skriva program som distribuerar beräkningar på flera olika sorters beräkningsenheter? Eller är det mer eller mindre nödvändigt att använda OpenCL (eller liknande bibliotek) för att skriva program för en GPU?
En GPGPU innehåller i princip alltid flera beräkningsenheter. Tex. ett vanligt grafikkort som GTX 1080 innehåller 2560 CUDA-kärnor (som är Nvidias namn på deras beräkningsenheter).
Det finns dock flera alternativa API istället för OpenCL. Många applikationer använder tex. grafikkortstillverkarnas egna API:er. Men då måste de själva hantera olika API:er och skriva kod för olika tillverkares GPGPU:er (om de vill stödja flera tillverkare).
Fördelen med att använda tex. OpenCL är att du kan skriva kod som exekverar oavsett om GPGPU:n kommer från Nvidia, AMD eller Intel. Alla de tre stora stödjer OpenCL (dock i lite varierande grad skall tilläggas).
Nackdelen kan dock vara att det ibland inte blir lika effektivt som tillverkarnas egna API:er och computebibliotek. Därav att tex. stora speltillverkare som tex. EA, eller stora grafiska utvecklare som tex. Adobe, ibland kan kosta på sig mer programmeringsresurser för att själva hantera flera tillverkares API:er och bibliotek.
Ibland har entusiastprojekt som tex. DT kanske inte alltid fullt så stora utvecklarresurser som en del stora kommersiella företag (som tex. Adobe), och då kanske de inte har råd att kosta på sig den strategin.
Då gissar jag att standardAPI:er som OpenCL kanske är ett mer vettigt val för utvecklarna bakom DT att använda sig av (med reservation för att jag aldrig pratat med några bakom just DT, eller ens läst något som helst om detta, utan bara gissar fritt).
Kan också tänka mig att det även kanske passar FOSS-filosofin bättre att använda sig av öppna standardiserade API:er (men även nu spånar jag också fritt i just detta fallet med DT).