如何提高GPU使用效率-淺析GPU資源監控及虛擬化

十二月 28, 2024 by · Leave a Comment
Filed under: killtest (Edit)

原创 twt社区
【摘要】在數位化高度普及的時代,智慧AI能力的應用已成為企業提升服務品質與效率的重要手段,GPU強大的運算能力可以加速自然語言處理模式的訓練與推理過程,將GPU算力高效率的應用到合適的場景中,可以為企業提供低成本且高品質的服務。但因現在客觀存在GPU算力供應鏈卡脖子問題,GPU高階卡取得途徑有限,中低端卡供應也出現供不應求,算力價格持續走高,算力資源尤為珍貴,在此背景下,GPU資源的高效利用顯得尤為重要。如何有效運用GPU資源、提高資源利用率、降低系統的營運成本,以更低的成本為客戶提供更好的服務,成為近年金融企業聚焦的熱門地點。考慮提升GPU使用效率的方案,主要有加強資源監控,避免資源閒置以及做好資源使用、進行GPU池化與虛擬化。
【作者】哲哲蛙(筆名),某城商行技術經理,長期服務於資訊科技部門,熟悉大型企業的IT資料中心基礎平台的建置與維護工作。
一、GPU資源監控
1.1 GPU監控為了提升GPU資源利用效率,必須做好對資源使用效率的監控,避免應用程式對於GPU資源使用的「高配低效」。
一些應用開發廠商或維護人員,為了確保自己的程式運行,可能存在「圈地」思想,放大對於資源需求的評估,但實際運行並不需要那麼大的資源,或者程式並非7*24小時都在相對高負載運行,而是每天大多數時間段均空負載處於閒置狀態。因此算力管理員就需要做好GPU資源監控,以便更好的掌握資源使用狀況,及時評估管理珍貴的GPU算力資源。
此外,GPU的監控對於提升應用能力,還能發揮更多正向作用。透過GPU監控,確保模型訓練和推理過程中GPU資源的穩定供應,加速模型的訓練和更新速度,及時調整風險評估策略。透過監控GPU資源的使用情況,優化相關模型的訓練與部署。保障系統穩定性:銀行的許多業務關鍵系統如風險評估、詐欺偵測等依賴GPU的強大運算能力來處理大量複雜資料。透過即時監控GPU的溫度、使用率、記憶體佔用等指標,維運人員可及時發現潛在問題,避免系統崩潰或效能下降,確保銀行業務的持續穩定運作。
最佳化資源分配:銀行通常有多種業務同時運行,對GPU資源的需求各異。監控GPU的使用情況有助於了解不同業務在不同時段對GPU資源的佔用,進而根據業務的優先順序和資源需求動態分配GPU資源,提高資源利用率,降低營運成本。
提升業務效率:在人工智慧和大數據分析廣泛應用於銀行業務的背景下,快速且準確的GPU監控能夠幫助銀行更快地訓練和部署機器學習模型,如信貸風險評估模型、市場趨勢預測模型等,進而提升業務決策的速度與準確性,增強銀行的市場競爭力。
1.2 GPU 監控的常用工具和技術目前金融客戶市場中主流的GPU仍然是英偉達,國內一些國產GPU也開始有了應用,國產GPU有圖形渲染GPU和高效能運算GPU(GPGPU)兩種。其中圖形渲染GPU例如寒武紀MLU370、摩爾線程MTT S80;另一類高效能運算GPU,例如壁仞科技BR100、沐曦MXN AI和MXC GPGPU、中科曙光DCU以及近年來生態穩步提升的華為昇騰顯示卡等。目前針對GPU的監控,有硬體廠商自己提供的產品方案以及開源方案兩種,例如NVIDIA官方提供的nvidia-smi工具,可用於查詢和監控N卡GPU的狀態信息,包括GPU的使用率、記憶體使用狀況、溫度、風扇轉速等基本指標,硬體廠商提供的監控方案,通常有一定的限制,只能提供針對自己的產品的監控能力。
另外,一些開源方案例如GPUSTAT,則是基於Python 的輕量級命令列工具,利用nvidia-smi獲取數據,並以命令列輸出形式呈現GPU的狀態和效能,支援自訂刷新率、選擇要監視的GPU以及與其他監控系統集成,適用於自動化腳本和持續集成流程。目前國內部分平台監控GPU資源採用此方案較多,透過開源Prometheus 配置採集GPU的相關指標數據,配合Grafana進行圖形化展示,將採集到的GPU數據以直覺的圖表形式展示,採用此方案的通常打造成一個通用的平台,提供多種GPU的監控能力。
以某城商行採用的監控方案為例,其企業探索採用的Prometheus結合Grafana監控方案,是在GPU Kubernetes集群中,透過部署kube-prometheus stack建構監控體系實現監控。其主要原理還是透過容器搭建管理平台,並透過容器的agent採集,向平台匯總資料如下:
(a)每個運行vGPU組件的Kubernetes節點上部署DCGM-Exporter,定期從GPU設備中獲取資料並通過HTTP介面暴露出來供Prometheus進行讀取存取。建立ServiceMonitor資源對象,定義如何透過vGPU調度器收集指標。
(b)部署了Prometheus定期抓取包括GPU算力、顯存、溫度等各種指標數據,將其儲存在時間序列資料庫中。
(c)系統整合了Grafana視覺化展示工具,配置Prometheus為資料來源,並導入專為GPU監控設計的儀表板,提供了針對虛擬化GPU的關鍵效能指標,如算力利用率、顯存使用等。透過視覺化介面維運人員可以即時查看詳細的GPU監控訊息,從而及時發現潛在問題並優化資源配置策略,並且可以設定警告閾值,當GPU利用率過高、溫度過高等情況發生時,自動發送警告通知,從而及時發現和處理潛在問題。
二、GPU資源的虛擬化技術在GPU資源昂貴的背景下,採用GPU虛擬化技術,是提高資源使用率的一大利器。
GPU 資源的虛擬化技術主要有基於硬體輔助的虛擬化、基於驅動隔離、基於 API 轉送以及基於容器的GPU虛擬化幾類。其中前兩類主要是由硬體廠商提供的方案,而基於 API 轉送以及基於容器的GPU虛擬化主要是使用者態實現的虛擬化方案。基於硬體輔助的虛擬化借助GPU硬體本身俱備的虛擬化功能來實現資源的高效分配和共享。
例如,一些GPU晶片內部設定專門的虛擬化模組,這些模組可以直接對GPU的核心、顯存、快取等重要資源進行精細的劃分和管理,將一個GPU顯示卡物理上分割成多個小型顯示卡提供服務。以AMD 的部分GPU產品為例,其硬體輔助的虛擬化技術能夠將GPU的運算單元、顯存等依照預先設定的規則分配給不同的虛擬機器或應用,實現硬體層面的資源隔離與共用。基於硬體輔助的虛擬化效能優勢明顯,由於是在硬體層面直接進行資源分配和管理,減少了軟體層面的干預,能夠最大程度地降低虛擬化帶來的效能損失,提高GPU資源的利用效率,可以依實際需求對GPU的各項資源進行配置,滿足不同業務場景的要求。但這種方式最主要的短板在於對GPU硬體本身是否具備硬體劃分能力要求較高,只有具備相應硬體虛擬化功能的GPU才能採用,且通常劃分的顆粒度較粗。
基於驅動隔離的虛擬化,主要是透過對GPU驅動進行改造,使其能夠在多個虛擬機器或容器之間提供隔離的執行環境。 GPU廠商透過自己的驅動虛擬化,提供不同的VM 或容器各自獨立的驅動實例,這些實例共享實體GPU的硬體資源,不同的使用者或應用在各自的虛擬環境中都能像獨佔GPU一樣使用驅動功能。
基於驅動隔離的虛擬化,提供了較好的隔離性,不同虛擬環境之間的干擾較小,能保障應用的穩定性與安全性。可根據不同虛擬環境的需求靈活配置驅動參數,並提高資源利用效率。對驅動的改造需要GPU廠商的支持,而且不同版本的驅動和GPU型號可能需要針對性的適配工作,開發和維護成本相對較高。
基於 API 轉送的虛擬化,主要是透過在虛擬機器(VM)和實體GPU之間攔截並轉送圖形應用程式介面(API)調用,實現多個 VM 對GPU的共用。
例如,當 VM 中的應用程式發出 DirectX 或 OpenGL 等 API 呼叫時,中間層軟體會截取呼叫指令,然後將其轉送到實體GPU上執行,並將執行結果傳回 VM 中的應用程式。基於API 轉送的虛擬化實作相對簡單,不需要對GPU硬體進行深度修改,能較好地支援多種現有的圖形API,相容性較強,但由於涉及API 呼叫的攔截和轉發,可能會帶來一定的效能開銷,尤其在高負載場景下,對圖形處理的即時性可能會有影響。
以容器為基礎的GPU虛擬化是利用容器技術來實現對GPU資源的虛擬化管理,其本質其實是容器與API呼叫劫持結合的方案。容器透過與宿主機的GPU驅動和相關管理工具配合,將GPU資源分配給各個容器使用。例如,在使用 Docker 容器管理GPU資源時,透過安裝特定的 NVIDIA Docker 外掛程式等方式,讓容器能夠存取和使用宿主機上的GPU資源。
採用容器技術實現的虛擬化屬於輕量級實現方案,啟動速度快,相比虛擬機,容器在創建和運行過程中消耗的資源更少,能夠更快速地部署應用並投入使用。資源共享靈活,容器可以根據自身的需求從宿主機的GPU資源池中靈活取得所需資源,實現了GPU資源在多個容器之間的動態分配。但是容器的隔離性相對虛擬機器較弱,在某些對安全性和隔離性要求極高的應用場景中可能需要採取額外的措施來保障。如下圖所示採用的是一種基於容器和CUDA劫持結合的實現方式,實現GPU core和memory隔離,透過細粒度地切分和隔離GPU核心與內存,它允許在同一物理GPU上運行多個容器,從而更有效地利用硬體資源,提高Kubernetes環境中GPU資源的使用率。其整體實作主要元件及工作原理如下:… Continue reading

AWS SAA-C03考試概覽

十二月 21, 2024 by · Leave a Comment
Filed under: killtest (Edit)

類別:Associate
考試時長:130 分鐘
考試題型:65 題;單選題或多選題
考試費用:150 USD
考試選項:Pearson VUE 考試中心或線上監考考試
提供的語言:英語、法語(法國)、德語、義大利語、日語、韓語、葡萄牙語(巴西)、簡體中文、西班牙語(拉丁美洲)、西班牙語(西班牙)和繁體中文
AWS Certified Solutions Architect – Associate (SAA-C03) 考試是為擔任解決方案架構師
角色的人員,驗證您在AWS 服務方面的技術知識和技能.考試旨在檢查考生能否設計基於 AWS Well-Architected Framework 的解決方案。
同時,也考查考生能否完成以下任務:
• 設計融入了 AWS 服務的解決方案,從而滿足當前業務需求和預期的未來需求
• 設計安全、有彈性、高效且最佳化了成本的架構
• 檢視現有解決方案並確定改進
目標考生描述
目標考生應至少具有設計使用 AWS 服務的雲端科技解決方案的 1 年動手實作經驗。
有關考試中可能出現的技術和概念的列表、考試範圍內的 AWS 服務和功能的列表,以及
超出考試範圍的 AWS 服務和功能的列表,請參閱附錄。
考試內容
答案類型
本考試有兩種類型的試題:
• 單選題: 有一個正確答案和三個錯誤答案(幹擾項)
• 多重選擇題: 在 5 個或更多答案選項中具有兩個或更多正確答案
選擇一個或多個最準確表達或回答試​​題的答案。幹擾項或錯誤答案是知識或技能不全面的
考生可能會選擇的答案選項。幹擾項通常是與內容領域相符的看似合理的答案。
未回答的試題將計為回答錯誤;猜答案不會扣分。本考試包括 50 道試題,這些試題將
影響您的分數。… Continue reading

IBM 認證 watsonx 資料科學家 – 助理:C1000-177

十二月 7, 2024 by · Leave a Comment
Filed under: killtest (Edit)

認證概覽
助理資料科學家擁有基本的資料科學技能和知識,可以使用 IBM watsonx.ai 透過機器學習解決方案解決商業問題。這包括將機器學習解決方案與企業需求連結並了解何時應用企業人工智慧工作流程的能力。

此助理級考試的概念包括:
問題範圍和工具選擇
探索性資料分析
特徵工程
模型訓練與選擇
模型評估

推薦技能
Python
R
描述性統計
預測分析
要求
考試 C1000-177:使用 IBM watsonx 的資料科學基礎
考試目標
在考試開發過程中,主題專家 (SME) 定義個人成功履行產品或解決方案角色所需的所有任務、知識和經驗。這些由以下目標代表,考試中的問題是基於這些目標。

問題數: 61
待通過的問題數: 43
允許時間: 90分鐘
狀態: 即時

第 1 部分:評估業務問題16%

第 2 部分:執行探索性資料分析21%

第 3 節:開發工具與技術13%

第 4 節:預處理和特徵工程33%

第 5 節:模型選擇、訓練、評估與演示17%
Sample TestExam: C1000-177 Foundations of Data Science using IBM watsonx
1. Which… Continue reading