私はOpenCLのにCUDAコードを変換しようとしていますし、今の私は、これらの関数/変数で立ち往生しています:CUDAの__syncthreads()とblockIdx.xのOpenCLアナログとは何ですか?
__syncthreads()
blockIdx.x
私はOpenCLのにCUDAコードを変換しようとしていますし、今の私は、これらの関数/変数で立ち往生しています:CUDAの__syncthreads()とblockIdx.xのOpenCLアナログとは何ですか?
__syncthreads()
blockIdx.x
実は私は自分でそれを見つけました!有用な記事は次のとおりです。http://www.netlib.org/utk/people/JackDongarra/PAPERS/parcocudaopencl.pdf
答えは__syncthreads()用のバリア(CLK_LOCAL_MEM_FENCE)です。 blockIdx.xの場合、get_group_id(0)を使用してください!
__syncthreads()
- >barrier(_)
が、詳細はbarrier(CLK_LOCAL_MEM_FENCE)
とbarrier(CLK_GLOBAL_MEM_FENCE)
チェックこのquestionまたはこのdocumentationの違いを理解してください。
blockIdx.x
- あなたのグループ/ブロックの最初/ X次元IDを与える>get_group_id(0)