文章 ID: 000073940 内容类型: 故障排除 上次审核日期: 2019 年 06 月 05 日

为什么在启用 IOMMU 支持英特尔® FPGA Development Kits执行 OpenCL™ 应用程序时会发生内核错误?

环境

  • 英特尔® Quartus® Prime Pro Edition
  • 面向 OpenCL™ 专业版的英特尔® FPGA SDK
  • Linux*

    BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    在连接的开发套件上执行 OpenCL™ 主机应用程序时,在 Linux 内核中启用 IOMMU(例如intel_iommu),可能会发生内核错误,并导致主机挂起。

    即使“aocl 诊断”和“aocl 程序”通过,也可能发生这种情况。挂起是因为开发套件的 OpenCL™ 板卡支持包 (BSP) 不支持 SR-IOV。

     

     

    解决方法

    要解决此问题,禁用 IOMMU 功能:

    例如在 CentOS7.4 上,包括 grub2、UEFI 和 intel_iommu:

    1. 编辑 /etc/default/grub删除 以下行。
      intel_iommu=开启GRUB_CMDLINE_LINUX

    2. 更新 grub 配置文件

         grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

    3. 重新启动

    4. 检查 /proc/cmdline

        确保内核命令行中不显示 intel_iommu=on

     

    此变通办法不适用于 英特尔 FPGA 可编程加速卡 (PAC),因为 OpenCL™ BSP 支持 SR-IOV。 如果使用 PAC 时 IOMMU 被禁用,请参阅 英特尔®加速堆栈快速入门指南 了解启用英特尔 IOMMU 驱动程序的说明。

    相关产品

    本文适用于 3 产品

    英特尔® Stratix® 10 GX FPGA
    Stratix® V GX FPGA
    英特尔® Arria® 10 GX FPGA

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