An Overview of High Performance Computing and Responsibly Reckless Algorithms

SError發表於2024-09-18

該筆記內容來源於 Jack Dongarra 教授於 2024.8.5 在中大的講座“An Overview of High Performance Computing and Responsibly Reckless Algorithms”。

大多數東西還不懂但是會慢慢了解的。

1970 年代的 HPC 系統

  • CDC 7600 36.4 MHz:主存 \(65\) 千詞(每個詞 \(60\) 位),峰值 \(36 \rm{Mflop/s}\),每日至少停止執行一次(通常是四到五次)。

  • IBN 370.195 18.5 MHz:並行運算,可以同時進行 \(7\) 次浮算,記憶體 \(4 \rm{MB}\)

50 年來線性系統軟體包的開發

  • EISPACK(1970's):使用 Fortran,它依賴於矩陣的行。

  • LINPACK(1980's):依賴 Level 1 Basic Linear Algebra Subprograms(BLAS) 操作,即向量乘向量,且使用矩陣的列。

此外 Level 2 & 3 BLAS - ATLAS 支援矩陣乘向量和矩陣乘矩陣操作。

  • LAPACK(1990's):依賴 Level-3 BLAS 操作,對快取十分友好。

  • ScaLAPACK(2000's):依賴 PBLAS Mess Passing。(PVM 和 MPI 是 Message passing 的標準)

在之後的 PLASMA/MAGMA(2010's) 和 SLATE(2020's) (依賴於 C++)出現了 DAG Scheduling(DAG 排程,基於 PaRSEC)等等,不再贅述。

現在的 HPC Environment

  • 高度並行,使用分散式記憶體和 MRI + Open-MP 程式設計模型。

  • 商業處理器 + GPU 加速器。

  • 浮算次數不反應解決問題的時間大小。

  • 有 64,32,16,8 位元組級別的浮算硬體。

Dennard Scaling

Dennard Scaling(登納德縮放定律,1974)認為,隨著電晶體尺寸的縮小,其功率密度保持不變,從而使晶片的功率與晶片面積成正比。隨著電晶體密度的增加,每個電晶體的能耗將降低,計算機將變得更加節能。

但自 2005-2007 年前後,Dennard Scaling 定律似乎已經失效。積體電路中的電晶體數量仍在增加,但效能提升開始放緩。主要原因在於,當晶片尺寸不變而電晶體數量增多時,電流洩漏問題變得更加嚴重,導致晶片升溫,進一步增加能源成本。

Frontier

  • 峰值 \(2\rm{Eflop/s}\),功率 \(20+\rm{MW}\)。在資料分析、機器學習、人工智慧方面,在 \(16\) 位下達到了 \(11.2\rm{Eflop/s}\) 的峰值。

  • 每個 node 有一個 AMD CPU 和四個 AMD GPU(後者效能佔比為 \(99\%\)),\(730\mathrm{GB}\) fast memory 和 \(2\mathrm{TB}\) NVMe memory。

  • \(9408\) nodes(\(37,632\) GPUs,\(8.8\times 10^6\) Cores),\(706\mathrm{PB}\) 記憶體(\(695\mathrm{PB}\) Disk + \(11\mathrm{PB}\) SSD)。

值得注意的是目前 TOP 級別的 HPC 的 Fraction of Peak 十分的低(大部分 \(<2.0\%\) 甚至是 \(1.0\%\))。

"Respnsibly Reckless" Algorithms

牽扯到 AI 和 ML,Deep Learning 需要大量的小型矩陣運算("the time-consuming part"),從而引出這個 Responsibly Reckless Algorithms:

  • 嘗試使用一個快速的演算法,但是它可能會失敗(機率較低)。避免 Data Movement 和 Synchronization(同步?),使用 Mixed Precision。

  • 檢查其不穩定性,有需要的話再用穩定演算法計算它。


Algorithm / Software advances follows hardware.

And there is "plenty of room at the top".

相關文章