文章 ID: 000073954 内容类型: 故障排除 上次审核日期: 2021 年 08 月 28 日

为什么内核执行和内存数据传输无法同时运行,即使主机代码没有事件依赖性?

环境

  • 英特尔® Quartus® Prime Pro Edition
  • 适用于 OpenCL™ 的英特尔® FPGA SDK
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    由于面向 OpenCL 的英特尔® FPGA SDK 版本 19.1 和 19.2 出现问题™,在运行 OpenCL™ 设计时,客户可能会发现,即使主机代码之间不存在依赖性,内核执行和内存数据传输也无法同时运行。下面是一个示例,clEnqueueWriteBuffer 和 clEnqueueNDRangeKernel 之间不存在事件依赖性,并且使用不同的命令队列来创新这些命令。但在配置文件报告中,它显示了内核执行和数据传输的运行顺序,而不是并行运行。

    解决方法

    这是因为用于 OpenCL 的英特尔® FPGA SDK 19.1 和 19.2 版本的错误™导致内核延迟启动,而此时主机和内核出现了并发 DDR 访问。即使内核和主机访问 DDR 内存的不同部分,内核启动也被延迟。

    对内核启动的不正确依赖已在面向 OpenCL 的英特尔® FPGA SDK 的版本 19.3 中修复™。

    相关产品

    本文适用于 1 产品

    英特尔® 可编程设备

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。