2013-03-05 14 views

Odpowiedz

5

__syncthreads() ->barrier(_) ale upewnij się, aby zrozumieć różnicę między barrier(CLK_LOCAL_MEM_FENCE) i barrier(CLK_GLOBAL_MEM_FENCE) czeku to question lub niniejszego documentation aby uzyskać więcej informacji.

blockIdx.x ->get_group_id(0) który daje pierwszy/x wymiar identyfikator grupy/bloku

0

Istnieje wiele stron internetowych, które mogą pomóc w przenoszeniu CUDA do OpenCL (np here). Chcę tylko zauważyć, ponieważ dla "bariery" wskazuje się here, że są barrier(CLK_LOCAL_MEM_FENCE) i barrier(CLK_GLOBAL_MEM_FENCE): Głównie różnica polega na tym, że pierwsza zapewnia poprawne porządkowanie operacji pamięciowych podczas korzystania z lokalnej (udostępnionej w CUDA) pamięci a drugi, gdy pracujesz w pamięci globalnej. Pamiętaj, aby użyć właściwego dla swojej sprawy.