Opencl:确定最佳的local_item_size

我的代码就像2d matrix muliplication( http://gpgpu-computing4.blogspot.de/2009/09/matrix-multiplication-2-opencl.html )。 矩阵的尺寸为(1000 * 1000和10000 * 10000和100000 * 100000)。

我的硬件是:NVIDIA公司GM204 [GeForce GTX 980](MAX_WORK_GROUP_SIZES:1024 1024 64)。

问题是:

我可以使用什么最好的local_item_size?

size_t local_item_size[2], global_item_size[2]; global_item_size[0] = number_of_points; global_item_size[1] = number_of_points; local_item_size[0] = 10; local_item_size[1] = 10; 

提前致谢,

在nvidia卡上你应该使用32的倍数作为工作组中的总线程(所以8 * 8应该没问题)。 全局工作大小必须是每个维度中本地工作大小的倍数,因此也必须进行修改。

这也可能需要在内核代码中进行一些修改,以处理超出范围的值(可能有更多的工作项,而不是数据)。

请注意,如果您未指定本地工作组大小(例如,将null传递给它),驱动程序将自动选择它。 它不能保证它选择最好的尺寸,但它值得尝试。