我想运行在异步上在单个GPU上执行的异构内核。我认为这可以在Nvidia Kepler K20(或任何具有3.5+计算能力的设备)中通过将每个内核启动到不同的流而运行时系统根据资源可用性将它们映射到不同的硬件队列。 OpenCL中是否可以访问此功能? 如果是这样,那么OpenCL中的CUDA“Stream”相当于什么? Nvidia驱动程序是否通过OpenCL支持在K20卡上执行此类操作? 他们的任何AMD GPU是否具有相似的功能(或者有什么开发中的东西)? 回答任何这些问题都会对我有所帮助。
答案 0 :(得分:1)
原则上,您可以使用OpenCL命令队列来实现CKE(并发内核执行)。您可以从不同的CPU线程启动它们。以下是一些可能有助于您入门的链接: How do I know if the kernels are executing concurrently? http://devgurus.amd.com/thread/142485
我不确定如何使用NVIDIA Kepler GPU,因为我们在K20 GPU上使用OpenCL时遇到了奇怪的问题。