![]()
雙精度浮點計算(FP64)支撐著現代飛機飛行、火箭發射、疫苗研發,甚至核武器運行。但英偉達并未構建專用硬件來處理這種關鍵數據類型,而是依靠仿真技術來提升高性能計算和科學計算應用的性能,這是AMD在最近幾代產品中領先的領域。
需要注意的是,這種仿真并未完全替代英偉達GPU中的硬件FP64。英偉達新發布的Rubin GPU仍能提供約33 teraFLOPS的峰值FP64性能,但這實際上比四年前的H100少了一個teraFLOP。
如果在英偉達CUDA庫中啟用軟件仿真,芯片據稱可實現高達200 teraFLOPS的FP64矩陣性能。這是其即將淘汰的Blackwell加速器硬件性能的4.4倍。
從紙面數據看,Rubin不僅是英偉達有史以來最強大的AI加速器,也是多年來科學計算領域最強大的GPU。
英偉達超級計算產品高級總監Dan Ernst表示:"通過與合作伙伴的多項研究以及我們自己的內部調查,我們發現仿真獲得的精度至少與張量核心硬件的精度一樣好。"
仿真FP64并非英偉達獨有,它有潛力顯著提升現代GPU的吞吐量和效率。但并非所有人都對此信服。
AMD研究員Nicholas Malaya表示:"它在某些基準測試中表現不錯,但在真實的物理科學模擬中是否表現良好并不明顯。"他認為,雖然FP64仿真確實值得進一步研究和實驗,但還沒有為實際應用做好準備。
為什么FP64在AI時代仍然重要
即使芯片設計推向更低精度的數據類型,FP64仍然是科學計算的黃金標準,這是有充分理由的。FP64在動態范圍方面無與倫比,能夠表達超過18.44萬億億(2^64)個獨特值。
相比之下,像DeepSeek R1這樣的現代AI模型通常在FP8下訓練,只能表達可憐的256個獨特值。利用神經網絡的一般同質性,可以使用塊浮點數據類型如MXFP8或MXFP4來擴展其動態范圍。
這對定義大語言模型的模糊數學來說是可以的,但無法替代FP64,特別是當涉及生死攸關的情況時。
與高度容錯的AI工作負載不同,HPC仿真依賴于質量和能量守恒等基本物理原理。Malaya說:"一旦開始產生錯誤,這些有限錯誤就會傳播,并導致爆炸等問題。"
仿真FP64和Ozaki方案
使用低精度(通常是整數數據類型)來仿真FP64的想法并不新鮮。Ernst說:"仿真古老如泥土,我們在50年代中期就有了仿真,那時我們還沒有浮點硬件。"
這個過程需要更多操作才能完成,通常會因此產生嚴重的性能損失,但即使硬件缺乏專用浮點單元(FPU),也能實現浮點數學運算。
到80年代,FPU變得普遍,對仿真的需求基本消失。然而,2024年初,東京和芝浦工業大學的研究人員發表了一篇論文,通過展示FP64矩陣操作可以分解為多個INT8操作來復興這一概念,當在英偉達張量核心上運行時,可以實現高于原生的性能。
這種方法通常被稱為Ozaki方案,它是英偉達去年底發布的FP64仿真庫的基礎。正如Ernst迅速指出的那樣:"它仍然是FP64。不是混合精度。只是從硬件角度以不同方式完成和構建的。"
現代GPU配備了低精度張量核心。即使沒有Rubin張量核心中的高級自適應壓縮,芯片也能提供35 petaFLOPS的密集FP4計算。相比之下,在FP64下,芯片速度慢了1000多倍。
這些低精度張量核心構建和運行效率很高,所以問題變成了為什么不用它們來做FP64,Ernst解釋說:"我們有硬件,讓我們嘗試使用它。這就是超級計算的歷史。"
但它真的準確嗎
雖然英偉達熱衷于突出FP64仿真在其Rubin甚至更老的Blackwell GPU上實現的能力,但競爭對手AMD認為這種方法還沒有完全準備好。
根據Malaya的說法,FP64仿真在條件良好的數值系統中效果最好,高性能Linpack(HPL)基準就是一個典型例子。"但當你看材料科學、燃燒代碼、帶狀線性代數系統等時,它們是條件更差的系統,突然就開始崩潰了,"他說。
換句話說,FP64仿真是否有意義實際上取決于具體應用。對某些應用來說是可以的,而對其他應用則不行。
AMD的主要癥結之一是FP64仿真并不完全符合IEEE標準。英偉達的算法不考慮正零與負零、非數字錯誤或無限數字錯誤等情況。
因此,用于仿真更高精度的中間操作中的小錯誤可能導致擾動,從而影響最終結果,Malaya解釋說。
解決這個問題的一種方法是增加使用的操作數量。然而,在某個點上,所需的操作數量將超過仿真可能提供的任何優勢。
所有這些操作也占用內存。Malaya說:"我們有數據顯示,在Ozaki中仿真FP64矩陣大約使用了兩倍的內存容量。"
基于這些原因,AMD正將注意力集中在依賴雙精度和單精度應用的專用硬件上。其即將推出的MI430X利用AMD的小芯片架構來增強雙精度和單精度硬件性能。
填補空白
Ernst并不忽視像Ozaki方案這樣的FP64仿真算法面臨的挑戰,他很清楚英偉達實現中的差距。
Ernst認為,對大多數HPC從業者來說,正負零這樣的問題并不是什么大問題。同時,英偉達已經開發了補充算法來檢測和緩解非數字、無限數字和低效仿真操作等問題。
至于內存消耗,Ernst承認可能會稍高一些,但強調這種開銷是相對于操作而不是應用程序本身。他說,大多數時候,我們談論的矩陣最多只有幾個GB大小。
因此,雖然FP64仿真確實不符合IEEE標準,但這是否真的重要很大程度上取決于具體應用,Ernst爭辯說。"大多數IEEE合規排序規則發揮作用的用例在矩陣、矩陣乘法情況下不會出現。也沒有DGEMM傾向于實際遵循那個規則,"他說。
適用于矩陣,不太適用于向量
即使英偉達能夠克服FP64仿真的潛在陷阱,這也不能改變該方法只對依賴密集通用矩陣乘法(DGEMM)操作的HPC應用子集有用的事實。
根據Malaya的說法,對于60%到70%的HPC工作負載,仿真幾乎沒有什么好處。
他說:"在我們的分析中,絕大多數真實HPC工作負載依賴向量FMA,而不是DGEMM。我不會說這是市場的一小部分,但實際上是一個利基領域。"
對于向量密集型工作負載,如計算流體動力學,英偉達的Rubin GPU被迫在芯片CUDA核心中較慢的FP64向量加速器上運行。
然而,正如Ernst迅速指出的那樣:更多的FLOPS并不總是意味著有用的FLOPS。傾向于在FP64向量引擎上運行的相同工作負載很少能夠利用芯片理論性能的一小部分,這完全是因為內存跟不上。
我們在TOP500的向量密集型高性能共軛梯度基準中清楚地看到了這一點,由于內存子系統提供的更高的比特每FLOPS比率,CPU往往占主導地位。
Rubin可能無法提供最快的FP64向量性能,但憑借22 TB/s的HBM4,它在這些工作負載中的實際性能很可能比規格表顯示的要高得多。
不管準備好與否,FP64仿真來了
隨著大量由英偉達Blackwell和Rubin GPU驅動的新超級計算機將在未來幾年上線,關于FP64仿真可行性的任何問題都將盡快得到檢驗。
由于這種仿真不依賴于特定硬件,隨著研究人員發現該技術擅長或困難的場景,算法有可能隨時間改進。
盡管Malaya有所擔憂,他指出AMD也在通過軟件標志調查在MI355X等芯片上使用FP64仿真,以查看它可能適用的地方。
他告訴我們,IEEE合規性將大大有助于驗證這種方法,確保從仿真得到的結果與從專用硅得到的結果相同。
Malaya說:"如果我能對合作伙伴說運行這兩個二進制文件:這個給你與另一個相同的答案并且更快,是的,在底層我們正在做一些方案——我認為這是一個令人信服的論點,表明它已經為黃金時間做好了準備。"
他指出,可能對某些應用來說,仿真比其他應用更可靠。"作為一個社區,我們應該建立一個應用籃子來查看。我認為這是這里前進的方式。"
Q&A
Q1:什么是FP64仿真技術?它是如何工作的?
A:FP64仿真技術是指使用低精度數據類型(如INT8)來模擬雙精度浮點計算的方法。該技術基于Ozaki方案,將FP64矩陣操作分解為多個低精度操作,在英偉達張量核心上運行時能實現比原生硬件更高的性能。英偉達聲稱通過軟件仿真可實現高達200 teraFLOPS的FP64矩陣性能。
Q2:FP64仿真技術有什么局限性?
A:FP64仿真存在幾個局限性:不完全符合IEEE標準,無法處理正負零、非數字錯誤等特殊情況;內存消耗約為傳統方法的兩倍;主要適用于矩陣密集型應用,對60-70%的向量密集型HPC工作負載效果有限;在條件較差的數值系統中容易出現精度問題。
Q3:AMD對FP64仿真技術持什么態度?
A:AMD對FP64仿真技術持謹慎態度。AMD研究員認為該技術在某些基準測試中表現不錯,但在真實物理科學模擬中的效果并不明顯,還沒有為實際應用做好準備。不過AMD也在MI355X等芯片上調查FP64仿真的應用可能性,同時更專注于開發專用的雙精度和單精度硬件。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.