我遇到了针对不同设备同时执行clEnqueue *命令的问题。 OpenCL 1.1 Specification的第25页说
可以将多个队列与单个上下文相关联。 这些队列同时并且独立地运行,没有明确的 OpenCL中的机制,以便在它们之间进行同步。
但是,根据我的post here,显然并非如此。我有一个我正在创建的存储库来展示OpenCL的功能集。我正在从基础构建到一些更复杂的例子。我不得不提前停止进度因为我注意到,在使用多个命令等级(每个设备一个)的单线程主机软件中,似乎有一些无法解释的阻塞消除了所有并发性。更多细节见here,但要点是我看到了这个:
当我希望看到这样的事情时:
显然我一直在做OpenCL错误...理想情况下,我想看到有人
您可以从here提取我的软件,运行/编译的说明在README中。 请尝试留在``simple_events'分支,因为这是我写一个典型的OpenCL程序的方式。干杯。