我想在一个系统中一起使用2个OpenCL运行时(在我的例子中是AMD和Nvidia,但这个问题非常通用).
我知道我可以用任何SDK编译我的程序.但是在运行程序时,我需要提供libOpenCL.so.我如何提供两个运行时的库,以便在我的OpenCL程序中看到3个设备(AMD CPU,AMD GPU,Nvidia GPU)?
我知道它一定是可能的,但是我没有找到关于如何为linux做这个的描述.
非常感谢Tomas
我试图在GPU上运行内核并在主机(CPU)上进行额外的计算.我看到这个效果:
只有内核需要大约2000毫秒:
clEnqueueNDRangeKernel ...
clFinish(或clWaitForEvents,我试过两个)
我在睡眠模拟CPU上模拟了额外的计算(10):
clEnqueueNDRangeKernel ...
睡眠(10);
clFinish(或clWaitForEvents)
从理论上讲,内核应该在GPU上运行,在10秒休眠后内核应该完成.但是时间测量说这一切都需要12000ms而不是10000.
clFinish或clWaitForEvents是否会调用内核启动或者我错过了什么?
我正在使用AMD Fusion CPU/GPU和Linux.
非常感谢.