01AMD显卡休眠问题解决
产品:Instinct MI250 AMD 显卡7 月 1 日,有技术博客发布文章指出,AMD 推出了一组新补丁,解决了因显存容量及 Instinct 加速器数量过多而导致系统无法正常进入休眠状态的问题。
文章中提到,当一台服务器配置了 8 块带有 192GB 显存的设备,并且总系统内存超过 2TB 时,系统在尝试休眠时可能会失败。AMD 工程师 Samuel Zhang 对这一问题进行了说明:在执行休眠操作期间,系统会尝试将显存内容转移到 GTT 或共享内存区域。然而,当显存总量过大时,可能导致系统内存资源被耗尽,从而引发休眠失败。
Samuel Zhang 在提交的补丁信息中进一步解释称,当前的数据中心级独立显卡通常配备大量显存。当服务器搭载了 8 块具备 192GB 显存的显卡,以及 2TB 系统内存时,在休眠过程中由于内存空间不足,休眠操作可能无法顺利完成。
问题的核心在于,休眠阶段会将所有显存数据迁移到 GTT 或共享内存。无论是哪种方式,这些数据最终都会占用系统内存。操作系统内核随后会尝试将这些页面内容写入休眠镜像文件中。在最不利的情况下,这会导致显存数据在系统内存中出现两个副本,而现有的 2TB 内存容量不足以承载这一过程。
针对上述问题,AMD 提出了两项主要改进措施:一是将 GTT 内容迁移至共享内存,从而释放 GTT 占用的页面;二是强制将共享内存中的部分页面写入交换磁盘,以腾出更多共享内存空间。
在补丁的测试过程中还发现,将 GTT 数据迁移至共享内存之后,在系统恢复运行时需要花费较长时间来重建缓冲对象。例如,当系统配备 8 块独立显卡时,解冻阶段的缓冲对象恢复过程曾耗时约 50 分钟。
不过,考虑到休眠后续流程中并不再依赖 GPU 资源,这一恢复步骤其实可以省略。因此,第三个补丁的改动目标就是跳过解冻阶段的缓冲对象恢复操作,从而有效缩短整体休眠与唤醒所需的时间。