我正在尝试将CUDA代码转换为OpenCL,现在我仍然坚持使用这些函数/变量:
__syncthreads()
blockIdx.x
答案 0 :(得分:9)
其实我是靠自己找到的!这是一篇有用的文章:http://www.netlib.org/utk/people/JackDongarra/PAPERS/parcocudaopencl.pdf
答案是:对于__syncthreads()使用barrier(CLK_LOCAL_MEM_FENCE);对于blockIdx.x,请使用get_group_id(0)!
答案 1 :(得分:5)
__syncthreads()
- > barrier(_)
但请务必了解barrier(CLK_LOCAL_MEM_FENCE)
和barrier(CLK_GLOBAL_MEM_FENCE)
之间的区别
查看此question或此documentation了解详情。
blockIdx.x
- > get_group_id(0)
将为您提供组/块的第一个/ x维度ID
答案 2 :(得分:0)