排解 GPU VM 問題


本頁說明如何解決在 Compute Engine 上執行的 VM 附加 GPU 時發生的問題。

如果您嘗試建立附加 GPU 的 VM 時發生錯誤,請參閱「排解資源可用性錯誤」和「排解建立及更新 VM 的問題」。

使用 NVIDIA DCGM 排除 GPU VM 的問題

NVIDIA Data Center GPU Manager (DCGM) 是一套工具,可用於管理及監控叢集環境中的 NVIDIA 資料中心 GPU。

如要使用 DCGM 排解 GPU 環境中的問題,請完成下列步驟:

  • 請確認您使用的是適用於 VM 所連結 GPU 型號的最新建議 NVIDIA 驅動程式。如要查看驅動程式版本,請參閱「建議使用的 NVIDIA 驅動程式版本」。
  • 請確認您已安裝最新版的 DCGM。如要安裝最新版本,請參閱「DCGM 安裝」一文。

診斷問題

執行dcgmi診斷指令時,診斷工具回報的問題會包含解決問題的後續步驟。下列範例顯示 dcgmi diag -r memory -j 指令的可執行輸出內容。

{
  ........
   "category":"Hardware",
   "tests":[
      {
         "name":"GPU Memory",
         "results":[
            {
               "gpu_id":"0",
               "info":"GPU 0 Allocated 23376170169
bytes (98.3%)",
               "status":"Fail",
               ""warnings":[
                  {
                     "warning":"Pending page
retirements together with a DBE were detected on GPU 0. Drain the GPU and reset it or reboot the node to resolve this issue.",
                     "error_id":83,
                     "error_category":10,
                     "error_severity":6
                  }
               ]
            }
  .........

從上述輸出片段中,您可以看到 GPU 0 有待處理的網頁停用作業,這是由無法復原的錯誤所導致。輸出內容提供專屬 error_id,以及有關偵錯問題的建議。 以這個範例輸出內容來說,建議您排空 GPU 並重新啟動 VM。在大多數情況下,按照輸出內容這個部分的指示操作,即可解決問題。

建立支援紀錄

如果無法使用 dcgmi 診斷執行結果提供的指引解決問題,可以建立支援案件。開啟支援案件時,請提供下列資訊:

  1. 執行的指令和傳回的輸出內容。
  2. 相關記錄檔,例如主機引擎和診斷記錄。如要收集必要的記錄檔,可以執行 gather-dcgm-logs.sh 指令碼。

    在 Debian 和 RPM 系統上,如果使用預設安裝方式,這個指令碼會位於 /usr/local/dcgm/scripts

  3. 如果發生 dcgmi diag 失敗,請提供失敗外掛程式的統計資料檔案。 統計資料檔案採用下列命名慣例: stats_PLUGIN_NAME.json

    舉例來說,如果 pcie 外掛程式失敗,請加入名為 stats_pcie.json 的檔案。

  4. NVIDIA 系統資訊和驅動程式狀態。如要收集這項資訊,可以執行 nvidia-bug-report.sh 指令碼。如果您使用搭載 Blackwell GPU 的執行個體,請按照「為 Blackwell GPU 產生 NVIDIA 錯誤報告」一文的說明,取得完整的錯誤報告。

    如果問題是由其他 NVIDIA 依附元件所致,而非 DCGM 本身有錯誤,執行這個指令碼也有助於進行額外的偵錯。

  5. 環境最近的任何變更詳情 (失敗前)。

Xid 訊息

建立已附加 GPU 的 VM 後,您必須在 GPU VM 上安裝 NVIDIA 裝置驅動程式,應用程式才能存取 GPU。不過,有時這些驅動程式會傳回錯誤訊息。

Xid 訊息是 NVIDIA 驅動程式的錯誤報告,會列印至 Linux VM 的作業系統核心記錄或事件記錄。這些訊息會放在 /var/log/messages 檔案中。

如要進一步瞭解 Xid 訊息 (包括可能原因),請參閱 NVIDIA 說明文件

下節將依最常見的類型,提供處理部分 Xid 訊息的指引:GPU 記憶體錯誤、GPU 系統處理器 (GSP) 錯誤,以及非法記憶體存取錯誤。

GPU 記憶體錯誤

GPU 記憶體是指 GPU 上可用的記憶體,可用於暫時儲存資料。GPU 記憶體受到錯誤修正碼 (ECC) 保護,可偵測及修正單一位元錯誤 (SBE),並偵測及回報雙位元錯誤 (DBE)。

在 NVIDIA A100 GPU 發布前,系統支援動態網頁淘汰。對於 NVIDIA A100 和後續 GPU 版本 (例如 NVIDIA H100),我們導入了列重對應錯誤復原機制。ECC 預設為啟用。Google 強烈建議您啟用 ECC。

以下是常見的 GPU 記憶體錯誤和建議的解決方法。

Xid 錯誤訊息 解決方法
Xid 48: Double Bit ECC
  1. 停止工作負載。
  2. 刪除重新建立 VM。 如果錯誤仍未解決,請向 Cloud Customer Care 提交案件。
Xid 63: ECC page retirement or row remapping recording event
  1. 停止工作負載。
  2. 重設 GPU。
Xid 64: ECC page retirement or row remapper recording failure

訊息包含下列資訊:

Xid 64: All reserved rows for bank are remapped
  1. 停止工作負載。
  2. 刪除重新建立 VM。 如果錯誤仍未解決,請向 Cloud Customer Care 提交案件。

如果同時收到至少兩則下列 Xid 訊息:

  • Xid 48
  • Xid 63
  • Xid 64

訊息包含下列資訊:

Xid XX: row remap pending
  1. 停止工作負載。
  2. 重設 GPU。 重設 GPU 可讓列重對應和頁面淘汰程序完成,並修復 GPU。
Xid 92: High single-bit ECC error rate GPU 驅動程式修正可修正的錯誤後,就會傳回這則 Xid 訊息,這不應會影響工作負載。這則 Xid 訊息僅供參考。您無須採取任何行動
Xid 94: Contained ECC error
  1. 停止工作負載。
  2. 重設 GPU。
Xid 95: Uncontained ECC error
  1. 停止工作負載。
  2. 重設 GPU。

GSP 錯誤

GPU 系統處理器 (GSP) 是在 GPU 上執行的微控制器,可處理部分低階硬體管理功能。

Xid 錯誤訊息 解決方法
Xid 119: GSP RPC timeout
  1. 停止工作負載。
  2. 刪除重新建立 VM。 如果錯誤仍未解決,請收集 NVIDIA 錯誤報告,並向 Cloud Customer Care 提出支援要求。
Xid 120: GSP error

違規存取記憶體錯誤

應用程式發生違規存取記憶體問題時,系統會傳回下列 Xid:

  • Xid 13: Graphics Engine Exception
  • Xid 31: GPU memory page fault

違規存取記憶體錯誤通常是因為工作負載嘗試存取已釋放或超出範圍的記憶體所致。這可能是因為無效指標取消參照,或是陣列超出界限等問題所致。

如要解決這個問題,請對應用程式進行偵錯。如要偵錯應用程式,可以使用 cuda-memcheckCUDA-GDB

在極少數情況下,硬體效能下降可能會導致系統傳回非法記憶體存取錯誤。如要判斷問題是否出在硬體,請使用 NVIDIA Data Center GPU Manager (DCGM)。您可以執行 dcgmi diag -r 3dcgmi diag -r 4,以不同層級的測試涵蓋範圍和時間長度執行測試。如果發現問題出在硬體,請向 Cloud Customer Care 提交案件。

其他常見的 Xid 錯誤訊息

Xid 錯誤訊息 解決方法
Xid 74: NVLINK error
  1. 停止工作負載。
  2. 重設 GPU。
Xid 79: GPU has fallen off the bus

這表示驅動程式無法與 GPU 通訊。

重新啟動 VM。

重設 GPU

某些問題可能需要重設 GPU 才能解決。如要重設 GPU,請完成下列步驟:

  • 如果是 N1、G2 和 A2 VM,請執行 sudo reboot 重新啟動 VM。
  • 如果是 A3 和 A4 VM,請執行 sudo nvidia-smi --gpu-reset
    • 對於大多數 Linux VM,nvidia-smi 可執行檔位於 /var/lib/nvidia/bin 目錄中。
    • 如果是 GKE 節點,nvidia-smi 可執行檔位於 /home/kubernetes/bin/nvidia 目錄中。

如果重設 GPU 後仍發生錯誤,請刪除重新建立 VM

如果刪除並重新建立後仍發生錯誤,請向 Cloud Customer Care 提出案件,將 VM 移至修復階段

後續步驟

詳閱 GPU 機器類型