本文為您介紹如何使用DLC提供的算力健康檢測能力。
功能介紹
在執行DLC任務時,可能會遇到以下問題:
在任務花費一定時間加載模型Checkpoint或其他初始化操作后,由于申請的資源存在故障,無法順利開始訓練,需要調查定位故障問題并重新提交任務。該過程中會導致GPU資源的浪費。
在任務運行階段,如果發現模型訓練性能下降,可能是慢節點導致的,但缺少快捷有效的問題定位方法。此外,資源組內機器的GPU算力和通信性能測試也欠缺便捷且可靠的基準程序。
針對上述問題,DLC提供了算力健康檢測(SanityCheck)功能,旨在對分布式訓練任務的算力資源健康度與性能進行檢查。在創建DLC訓練任務時可以開啟該功能,健康檢測會對參與訓練的資源進行全面檢測,自動隔離故障節點,并觸發后臺自動化運維流程,有效減少任務訓練初期遇到問題的可能性,提升訓練成功率。此外,在檢測完成后,會給出有關GPU算力以及通信性能的檢測報告,可以幫助識別和定位可能導致任務訓練性能下降的問題元素,整體提升問題診斷的效率。
使用限制
僅支持在華北6(烏蘭察布)地域,使用靈駿智算資源提交的DLC訓練任務,開啟健康檢測功能。
當前功能僅支持PyTorch類型的訓練任務,且要求任務資源的GPU(卡數)大于0。
開啟健康檢測
通過控制臺
在PAI控制臺創建DLC訓練任務時,您可以在容錯與診斷區域,打開健康檢測開關,并配置相關參數。具體操作,請參見創建訓練任務。開啟健康檢測功能,并成功創建任務后,系統將占用一定的時間用于檢測資源健康度和可用性,并給出檢測結果。
其中健康檢測的關鍵參數說明如下:
參數 | 描述 |
檢測時機 |
|
檢測項 | 默認開啟GPU GEMM、All-Reduce檢測。支持用戶選擇計算性能檢測、節點通信檢測、計算通信交叉檢測、模型模擬驗證。更多檢測項說明及推薦場景,請參見附錄:檢測項說明。 |
最長檢測時間(分鐘) | 健康檢測最長運行時間,默認為30分鐘。在檢測超時后,會觸發預設的處理方法。 |
檢測超時處理 | 當健康檢測運行時間超過設定值時,您可以選擇將任務轉入以下狀態:
|
其他檢測配置 | 默認為空。 |
通過OpenAPI
調用CreateJob接口時,在Settings參數中新增2個參數開啟健康檢測功能。如下表所示:
參數 | 描述 | 示例 |
EnableSanityCheck | 任務是否打開算力健康檢測。取值如下:
|
|
SanityCheckArgs | 算力健康檢測的執行參數,取值如下:
|
|
查看檢測結果
健康檢測狀態說明
DLC任務在健康檢測中的相關狀態項如下:
檢測中:正在進行算力健康檢測環節,期間的任務狀態將顯示為檢測中。
檢測未通過:在執行算力健康檢測過程中,如果檢測出問題,或檢測時間超出設定的最大運行時間,狀態將顯示為檢測未通過。
檢測通過:算力健康檢測全部通過后,任務將直接進入運行中的狀態。
查看健康檢測結果
通過控制臺
在DLC任務詳情頁面下方的事件頁簽,單擊健康檢測,可以查看對應的檢測結果。
通過OpenAPI
GetJobSanityCheckResult:獲取DLC作業某次算力健康檢測結果。
ListJobSanityCheckResults:獲取某個DLC作業的多次算力健康檢測結果。
配置消息通知
您可以在PAI工作空間的事件通知配置中創建消息通知規則,其中事件類型選擇DLC任務>任務自動容錯,其他參數配置詳情,請參見消息通知。當算力健康檢測未通過時,會發送消息通知。
工作空間創建消息通知使用說明: 工作空間事件中心。
附錄:檢測項說明
預估檢測時長以2臺機器為單位,數值僅供參考,請以實際情況為準。
檢測項 | 含義說明(推薦場景) | 預估檢測時長 | |
計算性能檢測 | GPU GEMM | 用于檢測GPU GEMM性能情況,可識別:
| 1 分鐘 |
GPU Kernel Launch | 用于檢測 GPU Kernel 啟動延遲情況,可識別:
| 1 分鐘 | |
節點通信檢測 | All-Reduce | 用于檢測節點通信性能,識別通信慢節點/故障節點。在不同的通信模式下,可識別:
| 單個集合通信檢測 5 分鐘 |
All-to-All | |||
All-Gather | |||
Multi-All-Reduce | |||
Network Connectivity | 用于檢測機頭/機尾網絡連通性,識別通信連通異常節點。 | 2 分鐘 | |
計算通信交叉檢測 | MatMul/All-Reduce Overlap | 用于檢測通信kernel和計算kernel重疊時單節點的性能情況,可識別:
| 1 分鐘 |
模型模擬驗證 | Mini GPT | 使用模型模擬驗證AI系統可靠性,可識別:
| 1 分鐘 |
Megatron GPT | 5 分鐘 | ||
ResNet | 2 分鐘 |