閱讀439 返回首頁    go 微軟 go windows


GPU資源的監控和報警,支撐高效深度學習的利器

本係列將利用阿裏雲容器服務的機器學習解決方案,幫助您了解和掌握TensorFlow,MXNet等深度學習庫,開啟您的深度學習之旅。

大家通過第一篇文章對深度學習技術有了感性的認知後,就開始關心如果真正希望用深度學習技術解決問題時,有哪些問題需要注意。這裏分享一下深度學習訓練過程中一些常見的問題以及對應的解決辦法。

多數深度學習的模型訓練通常會花費大量的時間,短的有一到兩周,長的甚至有幾個月的時間。而在這期間,由於GPU狀態不正常導致模型訓練中斷,甚至影響模型訓練結果出現較大偏差的現象也屢見不鮮。這對於數據科學家來說,是無法承受之痛。

過去好多數據科學家為了解決這一問題,在訓練程序啟動之後不斷登錄到GPU主機上,一次一次的運行nvidia-smi。這種做法的問題在於無法及時發現問題;同時也浪費了數據科學家大量的時間。

本文將介紹如何利用阿裏雲容器服務的機器學習解決方案在幾分鍾內輕鬆設置GPU資源使用率顯存使用率溫度的報警機製,達到對於一些GPU潛在問題的先知先覺,避免不必要損失的目的。

配置GPU資源監控報警

首先創建GPU容器集群,這裏我們就可以得到一個GPU集群,請留意集群名稱

登錄到雲監控頁麵,根據集群名找到對應的集群,並且點擊節點監控

跳到容器集群節點的列表頁,選擇集群下的任意一個節點,點擊監控圖表

這裏可看到節點級別資源監控,其中包括GPU的使用率,顯存使用率和溫度。其中GPU的溫度是反映GPU卡工作狀態的重要指標,當GPU的溫度高到一定程度的時候,會導致GPU hang等潛在的嚴重問題。如果能夠提前洞察這一潛在問題,並且報警給相應的數據科學家,從而提前主動做一些checkpoint的保存,就可以提高訓練的有效性,避免硬件問題造成的訓練時間浪費的問題。這裏可以通過點擊報警按鈕快速配置

當報警設置頁麵彈出後,首先配置關聯資源,將實例列表下拉選擇全選將集群中所有的機器添加到報警監控中。

設置報警規則,這裏使用的監控維度是GPU溫度,要求5分鍾的平均值大於等於70攝氏度時報警;同時設置報警條件,這裏是5分鍾內連續5次超過閾值就報警。

設置報警通知,請先按照文檔創建雲監控的報警聯係人和聯係組GPU監控,並且添加釘釘機器人

選擇GPU監控組作為通知對象,並且選擇默認的通知方式和內容

創建模型訓練環境,運行neural-style模型訓練

為了測試報警功能,這裏我們運行一個可以觸發報警條件的neural-style模型訓練應用。具體來說:

登錄到容器服務解決方案,在 模型訓練 中點擊 創建

這樣,就可以看到一個表單。首先通過下拉框選擇剛才創建的集群名稱,點擊訓練框架 ,這時可以看到一係列深度學習框架的列表,其中包括TensorFlow, Keras和MXNet的不同版本, 還可以指定python2和python3的版本,這裏我選擇自定義鏡像,並且配置其他選項,點擊確定

以下為具體配置:

  • 訓練框架: 自定義鏡像
  • 鏡像地址: registry.cn-beijing.aliyuncs.com/cheyang/neural-style:latest
  • GPU數量: 1
  • 數據卷名: 不使用數據卷
  • 執行命令: python neural_style.py --iterations 50000 --content /neural-style/examples/1-content.jpg --styles /neural-style/examples/1-style.jpg --output /neural-style/output.jpg

接收報警信息

稍等片刻我們就可以看到在釘釘機器人報警GPU溫度過高,並且可以精確指明溫度過高的GPU卡號為/dev/nivdia0,所在機器的實例id為i-wz9b6v2187e05zslh3xv,以及高溫溫度為75攝氏度

通過報警中的http鏈接,還可以通過報警曆史看到具體的監控細節:

總結

不論在傳統的DevOps還是現在火爆的AIOps中,係統資源的監控和報警都扮演著非常重要的角色,特別是GPU維度的監控對於一次完整並且結果可靠的深度學習訓練有著重要的意義,基於容器服務的機器學習解決方案幫助您從**不知不覺** 到 先知先覺 ,端到端的掌控深度學習模型訓練的整個生命周期。

歡迎掃碼加入釘釘群一起討論:

code_1.jpg

最後更新:2017-05-22 09:01:45

  上一篇:go  《Apache Zookeeper 官方文檔》-3 快速指南:使用zookeeper來協調分布式應用
  下一篇:go  分布式存儲係統