OpenCL FPGA:同一内核的 2 个副本的内核执行不是并行进行的。除此之外,他们之间还有空闲时间
OpenCL FPGA: Kernel Execution of 2 copies of same kernel is not being made in parallel. In addition to that, there is also idle time in between them
我的目标是一起完成 2 - 4K 数据点的 FFT。因此,我从同一个内核创建了 2 个内核对象并立即将任务入队,即没有任何缓冲区读写或两者之间的任何回调。我发现它不会那样发生。除此之外,执行之间还有一些空闲时间。有人可以解释一下吗?
我原以为它们会运行并行,因为我的 FPGA 似乎有更多的面积。大约使用了 38%。
OpenCL 队列按顺序工作,因此一个内核在另一个内核之后执行。这可以确保 - 如果内核 2 读取内核 1 已更新的内存,则不会像它们同时 运行 那样出现竞争条件。开始执行内核也可能会有一些延迟。
要运行多个内核并行,可以尝试多队列
我发现这个问题很好地解答了我的疑惑。可以找到here
我的目标是一起完成 2 - 4K 数据点的 FFT。因此,我从同一个内核创建了 2 个内核对象并立即将任务入队,即没有任何缓冲区读写或两者之间的任何回调。我发现它不会那样发生。除此之外,执行之间还有一些空闲时间。有人可以解释一下吗?
我原以为它们会运行并行,因为我的 FPGA 似乎有更多的面积。大约使用了 38%。
OpenCL 队列按顺序工作,因此一个内核在另一个内核之后执行。这可以确保 - 如果内核 2 读取内核 1 已更新的内存,则不会像它们同时 运行 那样出现竞争条件。开始执行内核也可能会有一些延迟。
要运行多个内核并行,可以尝试多队列
我发现这个问题很好地解答了我的疑惑。可以找到here