我想运行在单个 GPU 上异步执行的异构内核。我认为这在 Nvidia Kepler K20(或任何具有 3.5+ 计算能力的设备)中是可能的,方法是将每个内核启动到不同的流,运行时系统根据资源可用性将它们映射到不同的硬件队列。OpenCL 中是否可以访问此功能?如果是这样,OpenCL 中的 CUDA 'Stream' 相当于什么?Nvidia 驱动程序是否支持通过 OpenCL 在其 K20 卡上执行此类操作?他们是否有任何具有类似功能的 AMD GPU(或者有任何正在开发的东西)?回答这些问题中的任何一个都会对我有很大帮助。
问问题
592 次
1 回答
1
原则上,您可以使用 OpenCL 命令队列来实现 CKE(Concurrent Kernel Execution)。您可以从不同的 CPU 线程启动它们。这里有几个链接可以帮助您入门: 我如何知道内核是否同时执行? http://devgurus.amd.com/thread/142485
我不确定它如何与 NVIDIA Kepler GPU 一起使用,因为我们在 K20 GPU 上使用 OpenCL 时遇到了奇怪的问题。
于 2013-05-13T12:54:45.867 回答