OpenCL modenhed under Windows

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg overvejer at bruge OpenCL i et forbrugerprodukt, som i øjeblikket er under udvikling.


Ved at lave en lille undersøgelse fandt jeg, at der generelt er god support under Mac OSX. Linux-support er også forholdsvis god, men min målgruppe bruger ikke Linux. Det er fortsat at kontrollere, hvor godt det understøttes i Windows.


Hvad angår Windows fandt jeg OpenCL distribution, der rejser nogle bekymringer.


Har nogen af ​​jer nogen erfaring med at bruge OpenCL i forbrugerorienterede produkter under Windows? Jeg er mere interesseret i GPU-siden af ​​OpenCL, specielt driverstøtte.

Bedste reference


Ligesom CUDA eller Stream skal OpenCL understøttes af føreren. De fleste CUDA-kompatible GPU'er understøtter OpenCL med en noget opdateret driver (CUDA 1.0 opad).
Faktisk, hvis du kompilerer med, siger CUDA SDK 4.1, skal dine slutbrugere have brug for nyere drivere end hvis du havde brugt OpenCL.


OpenCL er heller ikke bundet til nogen GPU-arkitektur. Selv om dette kan være problematisk for specielt designede algoritmer, bør det ikke have meget stor indflydelse på normale slutbrugerprogrammer.


I det mindste med CUDA kan du kun kompilere kode optimeret til den nuværende kendte hovedversion. Kompilering af OpenCL-kerner på slutbrugermaskinen muliggør muligvis optimeringer til nyere binære specifikationer i fremtiden.


Det styrter forfatteren i, at spørgsmål, der rapporteres til Nvidia OpenCL, generelt synes at ske meget, hvis ressourcerne ikke frigøres ordentligt. Jeg har set lignende nedbrud, indtil jeg har løst en lækage, der ikke frigiver oprettede kerner.
Jeg siger ikke det er den eneste grund til at det kan gå i stykker, men bortset fra programmeringsfejl virker det ret stabilt for mig.

Andre referencer 1


AMD og NVidia understøtter begge OpenCL på de fleste (alle?) Af deres GPU'er


Desværre understøtter Intel kun det på CPU'en, hvilket er en smule meningsløs, og hvis du skal insistere på at brugeren har en separat GPU til din app, kan du også insistere på, at de har en NVidia og bruger CUDA. Dette har begrænset optagelsen af ​​OpenCL.