OpenCL-动态共享内存分配

时间:2018-11-06 16:50:48

标签: opencl shared-memory

我正在尝试将一些现有的CUDA内核转换为OpenCL,问题是我必须使用OpenCL 1.2,因此无法使用non-uniform work-group大小,这意味着我应该让{{1} }决定本地工作组的大小(以避免全局工作量导致不可分割的工作组大小)。

正如提到的in this presentation,我使用enqueueNDRangeKernel作为内核函数的参数,作为共享内存指针,其大小由主机代码中使用__local int *定义。 / p>

在某些CUDA内核中,我分配了动态共享内存,其大小取决于线程块或本地工作组的大小。当我尝试将这些内核转换为OpenCL时,我不知道如何获取<Kernel>.setArg设置的本地工作组大小,该参数传递enqueueNDRangeKernel参数的NULL值以使其自动决定本地工作组大小

为了更加清楚,我只想将这段CUDA代码转换为OpenCL:

local

*顺便说一句,我需要一种适用于3-D工作组的通用解决方案。

*我有Nvidia显卡。

0 个答案:

没有答案