【问题标题】:How are OpenCL work-group scheduled on Intel FPGA?如何在英特尔 FPGA 上安排 OpenCL 工作组?
【发布时间】:2019-09-29 16:21:08
【问题描述】:

我有一个关于英特尔 FPGA 中多个 CU 上的工作组调度的问题。由于工作组被分配给可用的 CU,什么时候认为 CU 可用?是前一个工作组的最后一个工作项放弃了管道还是处于第二阶段(所以除了第一个工作组之外,管道的每个阶段都被前一个工作组占用)?这个决定是由硬件调度器做出的,但我没有找到任何解释这一切的公开文档。

编辑:我说的是使用面向 FPGA 的英特尔 OpenCL SDK 时发生的自动过程,而不是使用 HDL 的定制设计。

【问题讨论】:

    标签: opencl fpga


    【解决方案1】:

    除了工作项,工作组也在每个 CU 中流水线化。因此,您可以同时在同一个 CU 中运行多个工作组,以最大限度地提高管道效率。如果您的设计使用基于本地内存的缓冲区,当您检查 HTML 报告时,您会看到编译器正在进一步复制这些缓冲区以支持特定数量的“同时工作组”。此类工作组的数量似乎等于每个 CU 的流水线深度除以工作组大小。最后,在同一个 CU 中同时运行的所有工作组中的所有工作项被一个接一个地流水线化,属于每个 CU 的工作项使用它们自己的本地缓冲区,并且每个工作组都强制执行屏障同步。可能在同时运行的工作组之一完全离开 CU 之后,将在每个 CU 中安排一个新的工作组。

    附:在他们自己的论坛中获得与面向 OpenCL 的英特尔 FPGA SDK 相关的帮助可能更容易。

    附言英特尔的 OpenCL 工作项调度程序的详细信息未在任何地方记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2017-06-03
      相关资源
      最近更新 更多