Domanda

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

Un buon esempio potrebbe essere l'ottimizzazione globale di funzioni complesse tramite sciami di particelle, ricottura simulata, algoritmi evolutivi, ottimizzazione delle colonie di formiche, ecc.

È stato utile?

Soluzione

Ecco alcuni ottimi esempi nell'SDK di NVIDIA:

http://developer.nvidia.com/object/get-opencl.html

Altri suggerimenti

Gli algoritmi che stai descrivendo non sono né semplici né introduttivi dal punto di vista della programmazione GPU. La ragione per cui la CUDA ha degli esempi in queste aree è che è in circolazione da abbastanza tempo perché le persone abbiano sviluppato questi esempi. Al momento non esiste una versione pubblicamente disponibile di OpenCL in esecuzione 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 un NDA per ottenere. In parole povere, OpenCL non è stato abbastanza a lungo da poter sviluppare e dimostrare esempi completi come questi.

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

Ciò significa anche che è un'ottima opportunità per sviluppare alcuni di questi parametri e pubblicare i risultati. Quindi le persone faranno riferimento al tuo lavoro piuttosto che a te al loro lavoro. Non mi aspetto troppe sorprese però. Le prestazioni di OpenCL dovrebbero essere più o meno alla pari con quelle di CUDA una volta che saranno ampiamente disponibili e supportate

Il nostro team ha lavorato sugli algoritmi e l'accelerazione OpenCL e vorremmo suggerire l'articolo

http: //www.cmsoft.com.br/index.php?view=article&catid=1:latest-news&id=247:opencl-simulated-annealing

come implementazione di esempio dell'algoritmo di ricottura simulata per la minimizzazione.

Potresti provare i seguenti due libri:

Programmazione di processori paralleli massicci ... Un approccio pratico (NVIDIA) (capitolo 1 e 2)

Il libro di programmazione OpenCL ... Programmazione parallela per CPU e GPU MultiCore (componenti History

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top