本頁面說明如何解決在 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
診斷執行作業的輸出內容提供的指引解決問題,可以建立支援案件。開立客服案件時,您需要提供下列資訊:
- 執行的指令和傳回的輸出內容。
相關記錄檔案,例如主機引擎和診斷記錄。如要收集必要的記錄檔案,您可以執行
gather-dcgm-logs.sh
指令碼。在 Debian 和以 RPM 為基礎的系統上,預設安裝的話,這個指令碼會位於
/usr/local/dcgm/scripts
中。如果是
dcgmi diag
失敗,請提供失敗外掛程式的統計資料檔案。統計資料檔案採用下列命名慣例:stats_PLUGIN_NAME.json
。舉例來說,如果
pcie
外掛程式失敗,請加入名為stats_pcie.json
的檔案。NVIDIA 系統資訊和驅動程式狀態。如要收集這類資訊,您可以執行
nvidia-bug-report.sh
指令碼。如果問題是由其他 NVIDIA 依附元件而非 DCGM 本身的錯誤所造成,執行這個指令碼也有助於進行額外偵錯。
在發生錯誤前,環境最近所做的任何變更詳細資料。
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 (錯誤修正碼) 進行保護,ECC 可偵測及修正單位元錯誤 (SBE),並偵測及回報雙位元錯誤 (DBE)。
在 NVIDIA A100 GPU 推出之前,系統支援動態頁面淘汰功能。針對 NVIDIA A100 和後續 GPU 版本 (例如 NVIDIA H100),我們推出了資料列重新對應錯誤復原功能。ECC 預設為啟用。Google 強烈建議您繼續啟用 ECC。
以下是常見的 GPU 記憶體錯誤和建議解決方案。
Xid 錯誤訊息 | 解決方法 |
---|---|
Xid 48: Double Bit ECC |
|
Xid 63: ECC page retirement or row remapping recording
event |
|
Xid 64: ECC page retirement or row remapper recording
failure
訊息包含以下資訊: Xid 64: All reserved rows for bank are remapped
|
|
如果您同時收到下列至少兩則 Xid 訊息:
訊息包含以下資訊: Xid XX: row remap pending
|
|
Xid 92: High single-bit ECC error rate |
這個 Xid 訊息會在 GPU 驅動程式修正可修正的錯誤後傳回,且不會影響工作負載。此 Xid 訊息僅供參考。您無須採取任何行動。 |
Xid 94: Contained ECC error |
|
Xid 95: Uncontained ECC error |
|
GSP 錯誤
GPU 系統處理器 (GSP) 是一種微控制器,可在 GPU 上執行,並處理部分低階硬體管理功能。
Xid 錯誤訊息 | 解決方法 |
---|---|
Xid 119: GSP RPC timeout |
|
Xid 120: GSP error |
違規記憶體存取錯誤
當應用程式發生違規存取記憶體問題時,系統會傳回下列 Xid:
Xid 13: Graphics Engine Exception
Xid 31: GPU memory page fault
違規存取記憶體錯誤通常是因為工作負載嘗試存取已釋放或超出邊界範圍的記憶體。這可能是因為無效指標的解參照或超出邊界陣列等問題所致。
如要解決這個問題,您必須對應用程式進行偵錯。如要對應用程式進行偵錯,您可以使用 cuda-memcheck 和 CUDA-GDB。
在極少數情況下,硬體降級可能會導致傳回非法記憶體存取錯誤。如要判斷問題是否出在硬體,請使用 NVIDIA Data Center GPU Manager (DCGM)。您可以執行 dcgmi diag -r 3
或 dcgmi diag -r 4
,以便執行不同層級的測試涵蓋率和時間長度。如果確認問題出在硬體,請向 Cloud Customer Care 提交案件。
其他常見的 Xid 錯誤訊息
Xid 錯誤訊息 | 解決方法 |
---|---|
Xid 74: NVLINK error |
|
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
目錄中。
- 對於大多數 Linux VM,
如果重設 GPU 後仍出現錯誤,您必須刪除並重新建立 VM。
如果刪除及重新建立後仍發生錯誤,請向 Cloud Customer Care 提交案件,將 VM 移至修復階段。
後續步驟
查看 GPU 機器類型。