導致 Linux 在休眠時溢出導致崩潰
【甜蜜的煩惱︰VRAM 太多 ... 😂】VRAM 太多竟然會成為一個煩惱!外媒報導,近日的 Linux 系統修補中,AMD 工程師提交了三個系統補丁,用於解決「由於顯示卡的 VRAM 容量過大,Linux 伺服器無法休眠」的問題。
聽起來有點令人困惑?這裡指的並不是家用級的顯示卡,而是專為 AI 及科學運算而設計的 AI 顯示卡。舉例一台伺服器配置 8 張 AMD Instinct 顯示卡便能達到 1.5TB VRAM。雖然 VRAM 容量越大通常越好,但在這種情況下,卻可能引發意想不到的問題。
當系統啟動休眠時,所有 VRAM 內的資料首先會被卸載到系統記憶體中,通常透過圖形轉換表 (GTT) 或共享記憶體 (shmem),然後核心會建立一個休眠映像,將所有系統記憶體內容(包括移除的顯存)複製到第二個記憶體區域,最後再寫入磁碟。
因此,如果伺服器擁有 1.5TB VRAM,這種休眠複製會導致記憶體使用量高達 3TB,令大部分僅配備 2TB 系統記憶體的伺服器在休眠時失敗,甚至因記憶體溢出而崩潰。
為了解決這一問題,AMD 工程師 Sameul Zhang 提交了三個修正補丁。第一及第二個補丁用以減少休眠期間所需的系統記憶體數量,確保休眠過程順利進行,由於 VRAM 容量過大,進入休眠或恢復正常狀態需要接近一小時。
而最後一個補丁則容許系統在從休眠恢復到正常狀態時,選擇跳過恢復 VRAM,以便系統更快回復正常運作。
大家可能會問,為何伺服器需要支援休眠?雖然大部分 AI 伺服器都是持續運作不停機,但當遇上大型停電,例如最近的西班牙大停電,伺服器可以立即進入休眠狀態,以免整個 AI 及科學運算過程需要重頭開始。
資料來源: