【发布时间】:2011-03-22 16:59:33
【问题描述】:
有没有一种方法可以在两个独立的支持 OpenCL 的程序之间共享 GPU,或者更具体地说,在两个独立的进程之间共享 GPU,同时都需要 GPU 执行 OpenCL 内核?如果是这样,这是如何完成的?
【问题讨论】:
标签: opencl
有没有一种方法可以在两个独立的支持 OpenCL 的程序之间共享 GPU,或者更具体地说,在两个独立的进程之间共享 GPU,同时都需要 GPU 执行 OpenCL 内核?如果是这样,这是如何完成的?
【问题讨论】:
标签: opencl
当前的 GPU(NVidia 的 Fermi 除外)不支持同时执行多个内核。此外,到目前为止,GPU 还不支持抢占式多任务处理;这是完全合作的!内核的执行不能暂停并在以后继续。因此,任何基于时间的 GPU 共享的粒度都取决于内核的执行时间。
如果您有多个需要 GPU 访问的程序正在运行,那么您应该确保您的内核具有较短的运行时间(经验法则是
【讨论】:
这取决于你所说的共享。
一般来说,您可以在同一个 GPU 上创建 2 个创建 OpenCL 设备的进程。然后,驱动程序/操作系统/GPU 有责任确保一切正常运行。
也就是说,大多数实现都会对 GPU 执行进行时间切片以实现这一点(就像它发生在图形上一样)。
我感觉这并不是你所追求的。你能用一个用例来扩展你的问题吗?
【讨论】: