2013-03-05 5 views

Antwort

5

__syncthreads() ->barrier(_) aber stellen Sie sicher, dass Sie den Unterschied zwischen barrier(CLK_LOCAL_MEM_FENCE) und barrier(CLK_GLOBAL_MEM_FENCE) Kontrolle dieses question oder dieses documentation für weitere Informationen zu verstehen.

blockIdx.x ->get_group_id(0) mit dem Sie die erste/x-Dimension-ID der Gruppe/Block

0

Es gibt viele Seiten im Netz geben, die Sie für die Portierung von CUDA OpenCL (zB here) helfen kann. Ich möchte nur erwähnen, wie es here für die "Barriere" darauf hinweisen, dass es barrier(CLK_LOCAL_MEM_FENCE) und barrier(CLK_GLOBAL_MEM_FENCE): hauptsächlich der Unterschied ist, dass die erste eine korrekte Reihenfolge der Speichervorgänge sicherstellen, wenn Sie den lokalen Speicher (gemeinsam in CUDA) verwenden und die zweite, wenn Sie mit dem globalen Speicher arbeiten. Achten Sie darauf, die richtige für Ihren Fall zu verwenden.

Verwandte Themen