什么是浮點精度?
浮點精度是一種以二進制格式表示數(shù)字的方法,計算機將數(shù)字解讀為由 0 和 1 組成的二進制序列。本文將聚焦于更小眾的低精度格式——FP8、FP6和FP4,這類格式更適用于神經(jīng)網(wǎng)絡與人工智能領域。
在浮點數(shù)表示中,第一個二進制位表示數(shù)字的正負(符號位);接下來的一組二進制位構成指數(shù)位,以 2 為基數(shù)表示數(shù)字的量級;最后一組二進制位為尾數(shù)位(也稱為有效數(shù)字位),表示數(shù)字的小數(shù)部分。在這些低精度格式中,核心目標并非保持數(shù)學精度,而是盡可能節(jié)省計算資源、內存空間和帶寬,從而提升人工智能任務的響應速度與整體性能。
低精度格式為何存在?
首先需要說明,浮點數(shù)精度降低的核心原因并非數(shù)學限制,而是數(shù)據(jù)移動的瓶頸。
將權重和激活值在內存中傳輸所消耗的時間與能量,遠高于對它們進行乘法運算的成本。隨著模型規(guī)模不斷擴大(尤其是大語言模型),性能瓶頸逐漸轉向內存帶寬、緩存容量和功耗,而非浮點運算吞吐量。降低數(shù)值精度是緩解這些瓶頸最有效的手段之一。
這也是行業(yè)從 FP32 轉向 FP16 和 BF16 的原因——且即便如此,精度降低的需求仍未得到滿足。
降低精度可實現(xiàn)以下優(yōu)勢:
縮小模型體積,提升緩存局部性
提高有效內存帶寬
降低單次運算的能耗
提升計算資源利用率
人工智能神經(jīng)網(wǎng)絡訓練本身具有一定的近似容錯性:訓練過程中會刻意引入噪聲,采用隨機優(yōu)化方法,且評估的是整體表現(xiàn)而非精確的數(shù)值正確性。因此,精度不再是固定要求,而是需要謹慎分配的“資源預算”。
問題的核心也從“應使用何種精度?”轉變?yōu)椤熬仍谀男┉h(huán)節(jié)至關重要?”
什么是 FP8?
FP8 指的是一類 8 位浮點數(shù)格式,而非單一標準。與更大的 IEEE 浮點數(shù)類型類似,F(xiàn)P8 包含兩種版本:E4M3 和 E5M2(命名直觀反映其位分配規(guī)則)。
對于 8 位長度的浮點數(shù),單一格式無法同時兼顧足夠的數(shù)值范圍和精度。因此,現(xiàn)代硬件與框架會混合使用兩種 FP8 變體:
FP8 E4M3 適用于數(shù)值精度更關鍵的場景
FP8 E5M2 適用于動態(tài)范圍成為限制因素的場景
在實際應用中,F(xiàn)P8 極少單獨使用:計算過程通常以 FP8 執(zhí)行,而累加運算則在 FP16 或 FP32 精度下進行。這種方式在大幅降低存儲和計算精度的同時,保障了訓練與推理的穩(wěn)定性。
FP8 被廣泛應用于多款人工智能加速器,核心原因在于其能夠完美適配混合精度工作負載。
什么是 FP8 E4M3?
FP8 E4M3 優(yōu)先保證精度而非范圍。更多的尾數(shù)位使其能更精確地表示接近零的數(shù)值,因此非常適合分布相對集中的激活值和梯度。其位分配如下:
1 位:表示正負的符號位
4 位:以 2 為基數(shù)的指數(shù)位
3 位:尾數(shù)位/有效數(shù)字位/小數(shù)位(即小數(shù)點后的數(shù)值部分)
什么是 FP8 E5M2?
FP8 E5M2 將部分尾數(shù)位分配給指數(shù)位,以犧牲精度為代價擴大了可表示的數(shù)值范圍。這使其對異常值和大動態(tài)范圍具有更強的魯棒性,適用于權重和中間結果等場景。其位分配如下:
1 位:表示正負的符號位
5 位:以 2 為基數(shù)的指數(shù)位
2位:尾數(shù)位/有效數(shù)字位/小數(shù)位(即小數(shù)點后的數(shù)值部分)

什么是 FP6?
FP6 并非單一的標準化格式,而是一類 6 位浮點數(shù)表示方法。與 FP8 類似,F(xiàn)P6 也由符號位、指數(shù)位和尾數(shù)位組成——但由于僅含 6 位,其優(yōu)勢與取舍更為極端。
盡管具體實現(xiàn)存在差異,但大多數(shù) FP6 方案遵循以下通用模式:
FP6 E2M3
1 位:表示正負的符號位
2 位:以 2 為基數(shù)的指數(shù)位
3 位:尾數(shù)位/有效數(shù)字位/小數(shù)位(即小數(shù)點后的數(shù)值部分)
FP6 E3M2
1 位:表示正負的符號位
3 位:以 2 為基數(shù)的指數(shù)位
2 位:尾數(shù)位/有效數(shù)字位/小數(shù)位(即小數(shù)點后的數(shù)值部分)

FP6 相關:E2M3 與 E3M2 詳解
不同的指數(shù)位-尾數(shù)位分配比例適用于不同場景,但所有 FP6 格式都存在數(shù)值范圍或精度極度受限的問題——通常兩者同時受限。與 FP8 不同,單一 FP6 格式幾乎沒有平衡范圍與精度的空間。因此,使用 FP6 幾乎必然需要采用激進的數(shù)值縮放策略和嚴格的數(shù)值分布控制。
相較于 FP8,F(xiàn)P6 帶來的效率提升有限,但復雜度成本卻顯著增加。在多數(shù)情況下,F(xiàn)P8 已能捕獲大部分性能和內存優(yōu)勢,同時不會將數(shù)值穩(wěn)定性推向崩潰邊緣。
FP6 僅在以下條件下具有可行性:
數(shù)值分布狹窄且規(guī)律
按層或按張量實施數(shù)值縮放
累加運算在 FP16 或 FP32 精度下進行
什么是 FP4?
FP4 是當前實際討論中精度最低的浮點數(shù)格式。僅 4 位的長度將浮點數(shù)的性能推向絕對極限,其存在的核心目的幾乎完全是為了滿足硬件吞吐量和密度目標。截至目前,僅有 NVIDIA Blackwell 系列 GPU 原生支持 FP4 精度。
FP4 沒有統(tǒng)一標準,但典型設計的位分配如下:
符號位:1 位
指數(shù)位:2 位
尾數(shù)位:1 位

FP4 相關詳解
部分變體通過調整指數(shù)偏置或完全移除特殊值來優(yōu)化性能。無論具體布局如何,F(xiàn)P4 的數(shù)值范圍都極度有限,且?guī)缀鯖]有精度可言。FP4 的核心作用是通過實現(xiàn)極高的計算密度,最大化張量核心吞吐量并最小化內存帶寬消耗。
從數(shù)值角度看,F(xiàn)P4 并非為單獨使用而設計:它是一種計算格式,而非存儲或累加格式。當硬件規(guī)格中提及FP4 時,通常遵循以下邏輯:
數(shù)值通常經(jīng)過縮放或塊縮放處理
計算過程以 FP4 執(zhí)行
累加運算在 FP16 或 FP32 精度下進行
輸入和輸出通常以更高精度存儲
這一邏輯契合行業(yè)大趨勢:計算環(huán)節(jié)采用越來越低的精度,而在誤差易累積的環(huán)節(jié)保留更高精度。
因此,F(xiàn)P4 更應被視為一種硬件能力,而非通用的數(shù)值格式。其被納入 NVIDIA GPU 規(guī)格,反映的是 GPU 的性能極限方向,而非當前多數(shù)模型的可運行精度。計算過程中位長度的減少,降低了運算復雜度并加快了執(zhí)行速度——在 GPU 執(zhí)行人工智能訓練與推理過程中萬億次的運算中,這種優(yōu)勢會不斷累積放大。
精度的應用場景比精度位數(shù)更重要
現(xiàn)代人工智能系統(tǒng)并非采用單一精度運行,而是刻意在存儲、計算和累加等環(huán)節(jié)混合使用不同精度,僅在數(shù)值誤差易累積的關鍵環(huán)節(jié)保留較高精度。
這也是極低精度格式能夠可行的核心原因:
計算環(huán)節(jié)使用 FP8、FP6 甚至 FP4,以最大化吞吐量
存儲環(huán)節(jié)優(yōu)先選擇能保證精度的最小格式
累加環(huán)節(jié)保留 FP16 或 FP32 精度,以維持數(shù)值穩(wěn)定性
一種精度格式的有效性,與其位數(shù)關系較小,更取決于其在整個計算流程中的應用場景。
FP8:最佳通用低精度浮點數(shù),適用于訓練和推理計算,搭配高精度累加
FP6:實驗性與專用性格式,僅在嚴格縮放和受控分布條件下可行
FP4:硬件驅動的極限精度格式,僅在嚴格約束下作為計算格式使用,不可單獨應用
低精度并非意味著在所有環(huán)節(jié)犧牲正確性,而是在關鍵環(huán)節(jié)合理分配精度資源,在其他環(huán)節(jié)回收效率收益。

FP8、FP6、FP4 常見問題解答
1. 為何降低精度不會徹底破壞模型精度?
神經(jīng)網(wǎng)絡本身具有噪聲容錯性。只要累加和縮放處理得當,低精度計算引入的微小數(shù)值誤差不會顯著影響最終輸出結果。
2. 為何選擇 FP8、FP6 等浮點數(shù)格式而非整數(shù)格式(如 INT8)?
浮點數(shù)格式能夠保留動態(tài)范圍,這對激活值和梯度至關重要。整數(shù)格式需要顯式校準,且難以應對快速變化的數(shù)值分布。
3. 為何累加運算幾乎總是采用更高精度?
誤差會在累加過程中不斷累積。即使輸入是極低精度,使用 FP16 或 FP32 進行累加也能避免微小的舍入誤差主導最終結果。
4. 為何 FP4 已有硬件支持卻未被廣泛使用?
FP4 的數(shù)值范圍和精度極度有限。若缺乏嚴格的縮放和受控的數(shù)值分布,數(shù)值誤差會迅速擴大,超出多數(shù)模型的容忍范圍。
5. 如何在 FP8、FP6 和 FP4 之間選擇?
多數(shù)低精度計算場景優(yōu)先選擇 FP8;FP6 僅適用于專用或實驗性場景;將 FP4 視為硬件優(yōu)化手段,而非通用數(shù)值格式。
總結
低精度浮點數(shù)格式在吞吐量、延遲或功耗為核心約束的場景中極具優(yōu)勢,具體應用包括:
大語言模型(LLM):FP8 越來越多地用于訓練和推理計算,而 FP4 則在嚴格控制的推理內核中使用,以最大化張量核心利用率
數(shù)據(jù)中心推理:FP8 和 INT8 降低了每 Token 的內存帶寬消耗和能耗,直接提升成本效益和可擴展性
機器人與自動駕駛系統(tǒng):在嚴格的功耗和散熱限制下,低精度計算可提升控制環(huán)路速率,尤其適用于邊緣加速器
推薦與排序模型:這類模型對近似計算容忍度高,通過激進的精度降低可滿足延遲目標
含學習組件的科學與工業(yè)仿真:替代模型和學習求解器通常能在 FP8 精度下高效運行,且性能無明顯下降
這些場景的共性并非應用領域,而是核心約束:當數(shù)據(jù)移動成本高于計算成本時,低精度格式能帶來顯著收益。
隨著硬件與軟件的協(xié)同演進,未來數(shù)值格式的發(fā)展方向將更少依賴 IEEE 標準,更多取決于精度資源的高效分配能力。
本文轉自:聯(lián)泰集群 LTHPC
-
浮點
+關注
關注
0文章
32瀏覽量
13719 -
人工智能
+關注
關注
1820文章
50324瀏覽量
266902
發(fā)布評論請先 登錄
【RV32F與RV32D】之單精度和雙精度浮點數(shù)
FP6166 /FP6128 /FP6121 /FP6130 全新原裝正品 專注電源管理芯片 選擇凌曄科技
FP5207 VS FP5208
如何將浮點數(shù)據(jù)存儲至FLASH中呢
分享一種用于神經(jīng)網(wǎng)絡處理的新8位浮點交換格式
FLASH存儲浮點數(shù)據(jù)的解決辦法
縫縫補補的浮點數(shù)進制轉換器
單精度和雙精度浮點數(shù)的區(qū)別
單精度和雙精度浮點數(shù)的區(qū)別
FP8模型訓練中Debug優(yōu)化思路
FP8數(shù)據(jù)格式在大型模型訓練中的應用
低精度浮點數(shù)定義——什么是 FP8、FP6、FP4?
評論