為什么傳統超算還在用CPU而不是GPU?渺小的人類本質只能處理線性的,也就是傳統科學計算最終可以歸為A×B或者Ax=b。那么,既然GPU已經在AI領域證明了自己處理超大規模矩陣運算的能力,為什么現在的超算還用CPU而不是主要使用GPU來算這些矩陣?
既然提到傳統超算,我們要知道早期GPU沒有成熟,只能用CPU,同時傳統超算升級成本以及技術和接口冗余的方面可能很難支持升級。
![]()
超級計算機的發展有很長的歷史,其早期設計和軟件生態都是圍繞CPU構建的。在那個時代,CPU是唯一的選擇。GPU的出現最初是為圖形渲染設計的,而他具備的強大的并行計算能力是后來才被發掘的。當人們意識到可以用GPU進行“通用計算(GPGPU)”時,大量的超算軟件已經基于CPU架構開發完畢。這就導致了后續升級面臨巨大的歷史包袱。
那有人說?那能不能進行升級改造呀?給加上一塊GPU顯卡不就行。事情沒有那么簡單!
![]()
因為升級不僅是硬件,更是生態的遷移,因為其中硬件成本只是冰山一角而已,為一臺現有超算更換加速卡,或建設新的異構超算中心,成本遠不止購買GPU本身。它還包括:
第一方面、需要考慮系統集成成本,需要重新設計計算節點,增加GPU,并配備更強大的供電和散熱系統。這相當于對整個系統進行“外科手術”。
![]()
第二方面、需要軟件移植與優化成本:這是最大的開銷。將為CPU編寫的復雜科學計算代碼(通常是C++或Fortran)改寫成能在GPU上高效運行的代碼(如CUDA或HIP),需要耗費巨大的工程量。對于動輒百萬行代碼的成熟軟件,這無異于一次徹底的重寫。
第三方面、還需要考慮人員培訓成本:整個研發和運維團隊都需要學習新的并行編程模型和工具鏈,這需要時間和金錢的投入。
![]()
何況不是所有計算都適合“GPU化”,在許多傳統科學計算中,只有部分計算核心是高度并行的矩陣運算,而大量的外圍計算(如數據預處理、后處理、復雜邏輯判斷)依然是串行的。為了一小部分適合GPU的計算,去改造整個龐大的軟件系統,其投入產出比可能非常低。
我們還需要考慮到,不同廠商的GPU(如NVIDIA的CUDA和AMD的ROCm)有各自不同的編程接口。為一種GPU編寫的代碼,遷移到另一種GPU上可能需要大量修改,這增加了技術選型的風險和未來的“接口冗余”問題。
![]()
正因為這樣,我們現在在市場上可以看到超算的新老交替的“混合時代”,我們看到的現狀是:新建的頂尖超算為了追求極致的計算性能,幾乎都選擇了CPU+GPU的異構架構,因為它們要解決的問題(如氣候模擬、核聚變研究)中有大量可并行化的計算。
而大量的傳統超算仍在使用純CPU架構,因為它們運行的軟件經過數十年優化,已經非常成熟穩定。只要其計算能力還能滿足需求,進行昂貴且痛苦的GPU移植就不是一個優先選項。
![]()
最后說兩句,傳統超算沒有全面轉向GPU,并非因為GPU不好,而是因為“升級的痛苦”(成本、技術和生態慣性)在許多情況下,超過了“升級帶來的收益”。這是一個典型的“沉沒成本”和“路徑依賴”問題,也是技術演進過程中新舊更替的常態。對此大家是怎么看的,歡迎關注我“創業者李孟”和我一起交流!
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.