2009-09-14 10 views
5

Sto cercando alcuni esempi introduttivi a OpenCL che illustrano i tipi di applicazioni che possono sperimentare aumenti di velocità elevati (ad esempio 50x-1000x). Cuda ha molti esempi, ma non ho trovato la stessa cosa per OpenCL.Esempi OpenCL con benchmark

Un bel esempio potrebbe essere ottimizzazione globale di funzioni complesse tramite sciami di particelle, annealing simulato, algoritmi evolutivi, ottimizzazione colonia di formiche, ecc

risposta

4

Gli algoritmi si sta descrivendo sono né semplice né introduttiva dal punto di vista della programmazione GPU . La ragione per cui la CUDA ha esempi in questi settori è che è stato abbastanza lungo da permettere alle persone di aver sviluppato questi esempi. Al momento non esiste una versione di OpenCL disponibile pubblicamente che funzioni su GPU. Sia ATI che NVIDIA offrono versioni beta dei loro driver OpenCL, ma ATI supporta solo il calcolo della CPU e NVIDIA richiede la firma di una NDA da ottenere. In poche parole, OpenCL non è mai stato abbastanza lungo da poter fornire esempi completi come questi che sono stati sviluppati e dimostrati.

Detto questo, l'accesso ai driver OpenCL di NVIDIA non è difficile. Puoi scoprire come farlo sui loro forum here. Presumo che la distribuzione OpenCL contenga alcuni programmi di esempio per aiutarti a iniziare.

Ciò significa anche che è un'eccellente opportunità per sviluppare alcuni di questi benchmark e pubblicare i risultati. Quindi le persone faranno riferimento al tuo lavoro piuttosto che al tuo lavoro. Non mi aspetterei troppe sorprese però. Le prestazioni di OpenCL dovrebbero essere all'incirca alla pari con le prestazioni di CUDA quando saranno ampiamente disponibili e supportate.

+3

"Al momento non esiste una versione di OpenCL disponibile pubblicamente che funzioni su GPU." Non so se questo è il caso quando hai risposto a settembre ma non è assolutamente il caso ora. Sia AMD (ATI) che Nvidia hanno implementazioni OpenCL che funzionano alla grande. – dwf

0

si potrebbe provare le seguenti due libri:

Programmazione processori massivamente paralleli ... un hands-on Approach (NVIDIA) (capitolo 1 e 2)

L'OpenCL Programmazione libro ... di programmazione parallela per CPU multicore e GPU (componenti di storia

Entrambe vanno in dettaglio per spiegare perché lo sviluppo è stato fatto e dove si possono trovare i veri bonus.

Non sono sicuro del benchmarking, non ho avuto fortuna neanche io.