Opencl 在2个工作维度的情况下,单个工作组中有多少本地工作项

Opencl 在2个工作维度的情况下,单个工作组中有多少本地工作项,opencl,Opencl,如果我有两个工作维度,并将local\u work\u size设置为,比如说,{4,4},那么单个工作组是由4*4=16个本地工作项组成,还是仅由其中4个组成 有一个图像描述了一维情况,其中每个工作组包含唯一存在的维度的所有本地工作项,但我不知道如何扩展到二维情况,因此问题就来了 (来源:)您的假设是正确的,即具有{4,4}的本地工作大小将为每个工作组生成16个工作项。这是一张显示这一点的图片 其他信息(如果您需要): 维度的选择在很大程度上取决于您的实际问题,但也取决于内存访问模式和优化潜

如果我有两个工作维度,并将
local\u work\u size
设置为,比如说,
{4,4}
,那么单个工作组是由4*4=16个本地工作项组成,还是仅由其中4个组成

有一个图像描述了一维情况,其中每个工作组包含唯一存在的维度的所有本地工作项,但我不知道如何扩展到二维情况,因此问题就来了



(来源:)

您的假设是正确的,即具有
{4,4}
的本地工作大小将为每个工作组生成16个工作项。这是一张显示这一点的图片

其他信息(如果您需要): 维度的选择在很大程度上取决于您的实际问题,但也取决于内存访问模式和优化潜力。
但是,大多数问题都可以使用一维工作大小来解决(即使在处理二维数据时也是如此),尤其是在处理元素时没有相邻值的情况下。

此外,如果指定了本地工作组大小,则全局工作大小必须是它的整数倍(在OpenCL 1.x中)。因此,如果您的本地工作组大小为{4,4},那么全局工作组大小可以是(例如){4,4},或者{4,40},或者{256,4},而不是{6,10}。是的,因为工作组的数量是从全局和本地工作组大小中隐含的,并且应该是一个整数。