7 月 2 日消息,科技媒体 phoronix 昨日(7 月 1 日)发布博文,报道称 AMD 公司发布了新的补丁系列,修复了由于显存和 Instinct 加速器过多,导致的系统休眠失败故障。
援引博文介绍:如果一台服务器配有 8 个带有 192GB 显存的设备,系统内存超过 2TB,那么就会导致系统休眠出现故障。
AMD 工程师 Samuel Zhang 解释称休眠过程中,系统尝试将显存迁移到 GTT 或共享内存,如果显存过多,可能会导致系统内存耗尽。
Samuel Zhang 在最新发布的补丁中表示:
现代数据中心 dGPU 通常配备有非常大的 VRAM。在配备此类 dGPU(192GB VRAM * 8)和 2TB 系统内存的服务器上,休眠会因为内存不足而失败。
根本原因在于,休眠期间所有 vRAM 内存都会被迁移到 GTT 或共享内存。在两种情况下,它们都在系统内存中,内核会尝试将这些页面复制到休眠镜像。在最坏的情况下,这会在系统内存中创建两份 vRAM 内存副本,2TB 的内存不足以存储休眠镜像。
修复方案包括以下两个变更:1. 将 GTT 迁移到共享内存,释放 GTT 页面;2. 强制将共享内存页面写入交换磁盘,释放共享内存页面。
在休眠准备阶段将 GTT 迁移到共享内存后,在解冻阶段恢复缓冲对象需要大量时间(观察到 8 个 dGPU 需要 50 分钟)。
由于后续休眠阶段不需要使用 GPU,这一步骤并非必要。第三个补丁就是跳过解冻阶段的缓冲对象恢复,以减少休眠时间。