【发布时间】:2011-12-06 17:52:29
【问题描述】:
我很好奇 GPU 如何多次执行同一个内核。
我有一个内核连续排队数百(可能数千)次,使用 AMD App Profiler 我注意到它会非常快速地执行内核集群,然后就像发条一样,内核每隔一段时间就会“挂起”(即执行时间要长几个数量级)。我认为每 64 个内核都会挂起。
这很奇怪,因为每次通过内核执行完全相同的操作,并且具有相同的本地和全局大小。我什至重复使用相同的缓冲区。
我是否缺少关于执行模型的某些内容(可能是其他程序/操作系统访问 GPU 或 GPU 内存的计时频率)。我正在 Windows 7(64 位)下的 ATI HD5650 卡上使用 AMD App SDK 2.5 和有序队列执行进行测试。
作为旁注,如果我的内核中没有任何全局内存访问(一个相当不切实际的前景),那么分析器会在快速执行的内核和之前执行缓慢的内核之间设置一个间隙现在是一个很大的空白,我的内核都没有被执行。
作为后续问题,有什么办法可以解决这个问题吗?
【问题讨论】:
标签: opencl