今天在AMD图形驱动程序邮件列表上发布的一组补丁开始在AMDGPU内核图形驱动程序中实现对进程隔离的支持。
AMDGPU 驱动程序维护者 Alex Deucher 发布了一组补丁,开始向他们的开源驱动程序添加基础设施以实现进程隔离,这对于多用户环境尤为重要,或者可能现在添加它的主要动机是更好地支持使用 AMD Instinct 加速器的多用户云环境。
Deucher 解释了 AMDGPU 进程隔离:
“此补丁集启用进程隔离模式,该模式在进程之间序列化对图形块的访问。当此模式处于活动状态时,将在进程之间运行更清晰的着色器,以清除着色器 LDS(本地数据存储)和 GPR(通用寄存器)。例如,如果您想在用户注销时清除 LDS 和 GPR,则 sysfs 接口也可用于手动清除 LDS 和 GPR。
这包括对 GFX 9.4.3 和 9.4.4 的支持。对其他 GPU 的支持正在进行中,准备就绪后将可用。
最初针对 GFX 9.4.3 / GFX 9.4.4 硬件重申了对 Instinct 加速器的进程隔离关注。但如前所述,随着时间的推移,其他 AMD GPU/加速器也将能够从此过程隔离支持中受益。
使用此代码,命令处理器 (CP) 固件使用更清洁的着色器来清理计算单元上的进程之间的 LDS 和 GPR。通过这些补丁,新的“enforce_isolation”设置是按 GPU 和按分区,以便更好地控制其行为。此外,还添加了“enforce_isolation”sysfs 属性,以便于在每个 GPU 上切换此功能。还可以读取“enforce_isolation”sysfs 属性,以了解给定 GPU 的隔离状态。
新补丁还添加了一个“run_cleaner_shader”sysfs 文件,可用于手动触发更清晰的着色器以按预期运行。这可以由 Linux 管理员完成,或者很可能在脚本化/自动化环境中完成,以在必要时清除 GPU 内存并帮助防止不同进程之间的数据泄漏。
在进程隔离补丁中也有人认为,更干净的着色器可以帮助提高性能:
“更清晰的着色器功能通过在使用 GPU 资源后清理 GPU 资源来帮助提高 GPU 性能和资源利用率。它还通过防止工作负载之间的数据泄漏来增强安全性和可靠性。
对这个 AMDGPU 进程隔离功能感兴趣的人可以在 amd-gfx 上找到初始代码。
转自 AMD Implementing Process Isolation Support For Their GPU/Accelerator Driver – Phoronix