当 运行 来自 github 操作时,aocl 命令无法正常工作

aocl command not working correctly when run from github actions

我正在尝试获取 github 操作以在自托管 运行 中使用英特尔 FPGA。任何时候尝试从主机到 FGPA 的通信都会出现如下错误:

Error initializing DMA: invalid parameter
Error initializing DMA: invalid parameter
Error closing DMA
Error closing DMA
...
aocl mmd alloc failed: Resource temporarily unavailable
aocl mmd alloc failed: Resource temporarily unavailable
aocl mmd alloc failed: Resource temporarily unavailable

如果我 运行 任何 aocl 命令或 运行 任何使用 OpenCL 运行time 环境的应用程序在系统中正常工作,它工作正常。只有在 运行 执行 github 操作时才会失败。

问题是内存锁限制。 systemd 服务的默认值为 64k。它需要是一个很大的数字。将 LimitMEMLOCK=infinity 添加到服务文件,如下所示。

[username@mysystem ~]$ cat /etc/systemd/system/actions.runner.runner-name.mysystem.service
[Unit]
Description=GitHub Actions Runner (runner-name.mysystem)
After=network.target

[Service]
ExecStart=/home/username/.local/bin/myrunner/001/runsvc.sh
User=username
LimitMEMLOCK=infinity
WorkingDirectory=/home/username/.local/bin/myrunner/001
KillMode=process
KillSignal=SIGTERM
TimeoutStopSec=5min

[Install]
WantedBy=multi-user.target

然后重启服务。