在连接的开发套件上执行 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 驱动程序的说明。