【问题标题】:OpenCl Statement , true or false?OpenCl 声明,是真是假?
【发布时间】:2013-02-28 02:08:30
【问题描述】:

我正在阅读一些结果。在那里我看到他们使用了 5120 个工作组和 1 的本地大小。我对 OpenCl 的了解有限,我想知道这个说法是否正确:

从 GPU 可以看出,第一个测试有 5120 个工作组,其中 每个工作项 1 个。这意味着执行的线程 并行受限于计算单元的数量 机器。例如,如果一个 GPU 有 20 个计算单元,那么只有 最多 20 个线程并行工作。虽然当 本地大小增加到 2,运行线程数量的两倍 同时

通过阅读有关 OpenCl 的一些信息,这似乎是正确的。虽然我需要第二个意见。

【问题讨论】:

    标签: opencl


    【解决方案1】:

    更新。嗯,nat chouf 的评论是对的,我将问题理解为“同时飞行”而不是“同时物理执行”。

    正如我所写,可以在给定时间在单个计算单元中安排多个工作组。这种“正在运行”的工作组的数量受到每个计算单元上可用资源(本地内存、寄存器等)的限制。

    在现有的实现 (afaik) 中,计算单元将从同一工作组中选择一个工作项块(warp/wavefront)来执行,在计算单元中的所有正在运行的块中。这个块的一个“指令”被插入到流水线中(可能需要几个周期,每个“指令”可能对应于每个工作项中的几个操作),然后另一个块被挑选出来。

    所以,是的,如果工作组大小为 1,则每个计算单元只有 1 个工作项将同时物理启动。但可能所有工作项都可能同时在 GPU 中运行。

    【讨论】:

      猜你喜欢
      • 2013-06-11
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 2018-07-01
      • 2015-10-10
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      相关资源
      最近更新 更多