2013-03-05 6 views

risposta

5

__syncthreads() ->barrier(_) ma assicuratevi di capire la differenza tra barrier(CLK_LOCAL_MEM_FENCE) e barrier(CLK_GLOBAL_MEM_FENCE) controllo questo question o questo documentation per maggiori informazioni.

blockIdx.x ->get_group_id(0) che vi darà il primo/x dimensione id del gruppo/blocco

0

Ci sono molte pagine sul web che possono aiutare per il porting CUDA per OpenCL (per esempio here). Voglio solo rimarcare, come si nota per la "barriera" here, che ci sono barrier(CLK_LOCAL_MEM_FENCE) e barrier(CLK_GLOBAL_MEM_FENCE): principalmente la differenza è che il primo garantisce l'ordine corretto delle operazioni di memoria quando si utilizza la memoria locale (condivisa in CUDA) e il secondo quando si opera sulla memoria globale. Assicurati di utilizzare quello giusto per il tuo caso.

Problemi correlati