平行計算不斷進步,以滿足深度學習、科學模擬和數據密集型計算等高性能任務的需求。在這一領域中,一個基本操作是矩陣乘法,這是許多計算工作流的基礎。近期的硬件創新,如張量核心單元(TCUs),通過優化固定大小的矩陣乘法來提供高效的處理能力。這些單元現在正在適應超出神經網絡的更廣泛應用,包括圖算法和排序,以提高計算效率。
儘管有這些創新,前綴和掃描算法(計算累積和)在基於矩陣的計算中仍面臨挑戰。傳統方法在管理計算深度和為大數據集分配工作方面效率不足。此外,啟動矩陣操作的延遲以及張量核心單元的有限並行性進一步複雜了性能問題。基於平行隨機存取機(PRAM)模型的當前方法對於簡單的二元操作有效,但在矩陣密集場景中未能充分利用現代張量核心硬件的潛力。
現有的前綴和掃描計算方法包括基於樹的算法,如Brent-Kung,這些算法優化了PRAM模型中深度和工作的權衡。然而,這些算法因依賴基本操作而受到限制,並未針對大規模矩陣計算進行設計。基於GPU的方法使用warp和block級算法在小數據段上取得了成功,但在處理大數據集時,由於張量核心的未充分利用和內存操作(如聚集和分散)帶來的高開銷而面臨挑戰。
來自華為技術的研究人員引入了一種名為MatMulScan的新算法,以應對這些挑戰,該算法專門設計用於張量核心單元模型。該算法利用TCUs的能力執行高效的矩陣乘法,最小化計算深度,同時實現高吞吐量。MatMulScan適用於梯度提升樹和並行排序等應用。它擴展了傳統算法以處理矩陣,使用專門設計的下三角矩陣來編碼局部前綴和標量-向量加法。
MatMulScan由兩個主要階段組成:向上掃描階段和向下掃描階段。在向上掃描階段,計算前綴和以增大索引,確保對數據子集的累積和進行高效計算。向下掃描階段將這些前綴和傳播到其餘數據中,修正任何局部和以產生準確結果。這種方法優化了延遲和硬件利用率,確保了大型數據集的可擴展性。分析顯示,該算法在計算深度上實現了顯著減少,並在大規模矩陣操作中高效運行。
對MatMulScan的廣泛評估證明了其實用性。例如,該算法在執行較少的矩陣乘法的同時,有效地減少了計算深度。其工作要求針對大型數據集進行了優化,使其成為現實應用的強有力候選者。此外,該算法通過將高效的矩陣乘法過程與硬件特定優化相結合來解決延遲成本。這確保了數據大小的線性可擴展性,使其適合高性能計算環境。
研究強調了幾個促進平行計算進步的關鍵要點:
減少計算深度:該算法優化了計算深度,顯著減少了對於大型數據集所需的處理步驟。
增強可擴展性:它能夠隨著數據大小的增加而有效擴展,並在多種應用中保持性能。
改善硬件利用率:通過利用張量核心的能力,該算法提高了硬件效率,克服了先前方法中的局限性。
廣泛適用性:除了前綴和掃描外,MatMulScan在梯度提升樹模型、並行排序和圖算法等應用中顯示出潛力。
總結來說,MatMulScan是平行掃描算法的一項重要發展,解決了傳統可擴展性和計算深度的限制。通過整合張量核心技術,該算法在性能和實用性之間取得了平衡,為未來高性能計算的進步鋪平了道路。這項研究擴展了TCUs的應用,為計算科學和工程中的創新應用奠定了基礎。
查看論文。這項研究的所有功勞都歸功於這個項目的研究人員。此外,請別忘了在Twitter上關注我們,加入我們的Telegram頻道和LinkedIn小組。如果您喜歡我們的工作,您會喜歡我們的新聞通訊。別忘了加入我們的59k+ ML SubReddit。
🎙️ 🚨 ‘大型語言模型脆弱性評估:紅隊技術的比較分析’ 閱讀完整報告(推廣)
Sana Hassan,Marktechpost的諮詢實習生,IIT Madras的雙學位學生,熱衷於應用技術和人工智能來解決現實挑戰。對解決實際問題有著濃厚的興趣,他為人工智能和現實解決方案的交匯處帶來了新的視角。