内核默默无法执行

时间:2011-09-14 16:09:39

标签: opencl gpgpu nvidia

我正在尝试在OpenCL中编写MergeSort(我知道,BitonicSort更快,但我想比较它们),目前我遇到了一个奇怪的问题:

如果我将全局大小设置为1 << 24并将本地大小设置为512,则内核将无法执行,也无法执行下一个排队的内核。但是,在排队内核或等待队列完成时,我都不会收到任何错误。没什么,只是内核没有被执行。 ComputeProfiler也显示它 - 没有内核。但是,对于全局大小1 << 23,算法运行良好。对于本地尺寸256,最小失败的全局尺寸为1 << 23

为什么会这样?我认为可能至少有65535个工作组(根据NVidia编程指南),向下舍入为最接近2的幂32768 == 1 << 15,本地大小为512 == 1 << 9这意味着具有全局大小1 << 24应该还可以。此外,我可以使用此全局和本地大小执行另一个内核。

最重要的是,没有错误,我无法察觉到这种情况已经发生。可能我需要做一些解决方法(在大型集合中手动循环工作组)但我想了解问题。

感谢您的任何建议

PS:我在Linux机器上使用NVidia GTX 580,驱动程序为260.19.26。

0 个答案:

没有答案