【发布时间】:2015-01-30 04:30:12
【问题描述】:
我一直在研究 OpenCL,看看它在我的上下文中是否有用,虽然我了解基础知识,但我不确定我是否了解如何强制内核的多个实例在其中运行并行。
在我的情况下,我想要运行的应用程序本质上是顺序的,并且(在某些情况下)需要非常大的输入(数百 MB)。但是,有问题的应用程序有许多可以设置的不同选项/标志,在某些情况下可以使其更快或更慢。我希望我们可以为 OpenCL 重新编写应用程序,然后并行执行每个选项/标志,而不是猜测要使用哪些标志集。
我的问题是: 显卡可以并行运行多少个内核。这是购买时可以看的东西吗?它是否与着色器的数量、内存或应用程序/内核的大小有关?
此外,虽然应用程序的输入是相同的,但每次执行都会以不同的方式修改数据。我是否需要将输入数据分别传输到每个内核以允许这样做,或者每个内核都可以分配“本地”内存。
最后,这甚至需要多个内核,我可以使用工作项来代替吗?在这种情况下,您如何确定可以并行运行多少个工作项?
(参考:http://www.drdobbs.com/parallel/a-gentle-introduction-to-opencl/231002854?pgno=3)
【问题讨论】:
标签: parallel-processing opencl