我将一个矩阵作为全局内存传递并处理本地内存中的每个向量(行)。传入的实际矩阵是 100 X 2025,但在内核中我用零填充它以利用 2 操作的幂。我在每个工作项中处理向量的 4 个元素。
MAX_WORK_ITEM_SIZES: (512,512,512) MAX_WORK_GROUP_SIZE: 512
size_t globalWorkSize[2] = { 100, 2048 };
size_t localWorkSize[1] = { 512 };
我也尝试过将 localWorkSize 设为二维:{1, 512} 但在此函数调用中出现相同的错误 CL_INVALID_WORKGROUP_SIZE:
err = clEnqueueNDRangeKernel( openCLObjects.queue, openCLObjects.Normalize, 2, NULL,
globalWorkSize, localWorkSize, 0, NULL, NULL );
知道可能出了什么问题吗?
谢谢。