【发布时间】:2016-01-28 06:39:00
【问题描述】:
由于我的论文工作的原因,我目前正在阅读 OpenCL 框架。到目前为止,我遇到的是,您可以在数据并行或任务并行中运行内核。现在我有一个问题,但我无法找到答案。
问:假设您有一个要总结的向量。您可以在 OpenCL 中通过为数据并行进程编写内核并运行它来做到这一点。相当简单。
但是,现在假设您有 10 多个不同的向量也需要汇总。是否可以在任务中并行运行这 10 多个不同的向量,同时仍使用将它们作为“数据并行”处理的内核?
所以你基本上是并行化任务,在某种意义上它们是并行运行的?因为我的理解是,您可以并行运行任务,也可以只并行运行一项任务本身。
【问题讨论】:
-
这是可行的,但可能不是很有用,除非你有多个 GPU。为此,您需要多个 OpenCL 上下文,每个上下文处理一个命令队列,每个队列运行一个数据并行内核。