Memory opencl-异步工作组副本和最大工作组大小

Memory opencl-异步工作组副本和最大工作组大小,memory,opencl,Memory,Opencl,我试图在OpenCL中将全局内存复制到本地内存 我使用“异步工作组复制”指令将数据从全局内存复制到本地内存 __local float gau2_sh[1024]; event_t tevent = (event_t)0; __local float gau4_sh[256]; tevent = async_work_group_copy(gau2_sh, GAU2, 1024, tevent); tevent = async_work_group_copy(gau4_sh, GAU4, 256

我试图在OpenCL中将全局内存复制到本地内存

我使用“异步工作组复制”指令将数据从全局内存复制到本地内存

__local float gau2_sh[1024];
event_t tevent = (event_t)0;
__local float gau4_sh[256];
tevent = async_work_group_copy(gau2_sh, GAU2, 1024, tevent);
tevent = async_work_group_copy(gau4_sh, GAU4, 256, tevent);
wait_group_events(2, &tevent);
gau2
的全局内存大小为1024*4。当我使用少于128个线程时,它工作得很好。但如果我使用超过128个线程,内核将导致错误
CL\u无效\u工作\u组\u大小

我的GPU是Adreno420,其中最大工作组大小为1024


我需要考虑其他的地方内存拷贝吗?< /P> < P>这是由登记使用和本地内存引起的。

与CUDA的
-cl nv maxrregcount=
类似,对于高通公司的Adreno系列,它们具有减少寄存器使用的编译选项。

与这件事有关的官方文件是专有的。 所以,如果您对此感到担忧,请阅读高通Adreno SDK中包含的文档

有关详细信息,请参阅以下链接:


  • 谢谢你的编辑。哦,对不起,当我编辑你的问题时,我得到了答案,但忘了回答:(向上投票。你可以点击左边的勾号来接受你自己的答案。