32 位與 16 位格式的混合精度訓練,正是當前深度學習的主流。最新的英偉達核彈 GPU H100,剛剛添加上對 8 位浮點數格式 FP8 的支持。英偉達首席科學家 Bill Dally 現在又表示,今天Feier要和大家分享的是英偉達首席科學家:5nm實驗芯片用INT4達到INT8的精度,每瓦運算速度可達H100的十倍,歡迎閱讀~
32 位與 16 位格式的混合精度訓練,正是當前深度學習的主流。
最新的英偉達核彈 GPU H100,剛剛添加上對 8 位浮點數格式 FP8 的支持。
英偉達首席科學家 Bill Dally 現在又表示,他們還有一個" 秘密武器 ":
在 IEEE 計算機運算研讨會上,他介紹了一種實驗性 5nm 芯片,可以混合使用 8 位與 4 位格式,并且在 4 位上得到近似 8 位的精度。
目前這種芯片還在開發中,主要用于深度學習推理所用的 INT4 和 INT8 格式,對于如何應用在訓練中也在研究了。
相關論文已發表在 2022 IEEE Symposium on VLSI Technology 上。
新的量化技術
降低數字格式而不造成重大精度損失,要歸功于按矢量縮放量化(per-vector scaled quantization,VSQ)的技術。
具體來說,一個 INT4 數字隻能精确表示從 -8 到 7 的 16 個整數。
其他數字都會四舍五入到這 16 個值上,中間産生的精度損失被稱為量化噪聲。
傳統的量化方法給每個矩陣添加一個縮放因子來減少噪聲,VSQ 則在這基礎之上給每個向量都添加縮放因子,進一步減少噪聲。
關鍵之處在于,縮放因子的值要匹配在神經網絡中實際需要表示的數字範圍。
英偉達研究人員發現,每 64 個數字為一組賦予獨立調整過的縮放因子可以最小化量化誤差。
計算縮放因子的開銷可以忽略不計,從 INT8 降為 INT4 則讓能量效率增加了一倍。
Bill Dally 認為,結合上 INT4 計算、VSQ 技術和其他優化方法後,新型芯片可以達到Hopper 架構每瓦運算速度的 10 倍。
還有哪些降低計算量的努力
除了英偉達之外,業界還有更多降低計算量的工作也在這次 IEEE 研讨會上亮相。
馬德裡康普頓斯大學的一組研究人員設計出基于 Posits 格式的處理器核心,與 Float 浮點數相比準确性提高了多達 4 個數量級。
Posits 與 Float 相比,增加了一個可變長度的 Regime 區域,用來表示指數的指數。
對于0 附近的較小數字隻需要占用兩個位,而這類數字正是在神經網絡中大量使用的。
适用 Posits 格式的新硬件基于 FPGA 開發,研究人員發現可以用芯片的面積和功耗來提高精度,而不用增加計算時間。
ETH Zurich 一個團隊的研究基于 RISC-V,他們把兩次混合精度的積和熔加計算(fused multiply-add,FMA)放在一起平行計算。
這樣可以防止兩次計算之間的精度損失,還可以提高内存利用率。
FMA 指的是d = a * b + c這樣的操作,一般情況下輸入中的 a 和 b 會使用較低精度,而 c 和輸出的 d 使用較高精度。
研究人員模拟了新方法可以使計算時間減少幾乎一半,同時輸出精度有所提高,特别是對于大矢量的計算。
相應的硬件實現正在開發中。
巴塞羅那超算中心和英特爾團隊的研究也和 FMA 相關,緻力于神經網絡訓練可以完全使用 BF16 格式完成。
BF16 格式已在 DALL · E 2 等大型網絡訓練中得到應用,不過還需要與更高精度的 FP32 結合,并且在兩者之間來回轉換。
這是因為神經網絡訓練中隻有一部分計算不會因 BF16 而降低精度。
最新解決辦法開發了一個擴展的格式 BF16-N,将幾個 BF16 數字組合起來表示一個數,可以在不顯著犧牲精度的情況下更有效進行 FMA 計算
關鍵之處在于,FMA 計算單元的面積隻受尾數位影響。
比如 FP32 有 23 個尾數位,需要 576 個單位的面積,而 BF16-2 隻需要 192 個,減少了 2/3。
另外這項工作的論文題目也很有意思,BF16 is All You Need。
參考鍊接:
[ 1 ] https://spectrum.ieee.org/number-representation
[ 2 ] https://ieeexplore.ieee.org/document/9830277
[ 3 ] https://ieeexplore.ieee.org/document/9823406
關于英偉達首席科學家:5nm實驗芯片用INT4達到INT8的精度,每瓦運算速度可達H100的十倍就介紹完了,您有什麼想法可以聯系Feier。