OpenCL多设备CommandQueue并发问题(NVIDIA)

时间:2015-08-01 05:40:39

标签: concurrency opencl gpu gpgpu nvidia

我遇到了针对不同设备同时执行clEnqueue *命令的问题。 OpenCL 1.1 Specification的第25页说

  

可以将多个队列与单个上下文相关联。   这些队列同时并且独立地运行,没有明确的   OpenCL中的机制,以便在它们之间进行同步。

但是,根据我的post here,显然并非如此。我有一个我正在创建的存储库来展示OpenCL的功能集。我正在从基础构建到一些更复杂的例子。我不得不提前停止进度因为我注意到,在使用多个命令等级(每个设备一个)的单线程主机软件中,似乎有一些无法解释的阻塞消除了所有并发性。更多细节见here,但要点是我看到了这个:

enter image description here

当我希望看到这样的事情时:

enter image description here

显然我一直在做OpenCL错误...理想情况下,我想看到有人

  • 指出我做错了什么
  • 在他们的机器上成功运行我的软件(指向我环境中的问题)
  • 确认这是NVIDIA OpenCL 1.1实施和/或nvidia-346驱动程序的libOpenCL.so版本的错误

您可以从here提取我的软件,运行/编译的说明在README中。 请尝试留在``simple_events'分支,因为这是我写一个典型的OpenCL程序的方式。干杯。

0 个答案:

没有答案