天天看點

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

作者:機器之心Pro

機器之心專欄

機器之心編輯部

随着深度神經網絡(DNNs)模型在規模和複雜性上的迅速增長,傳統的神經網絡處理方法面臨着嚴峻的挑戰。現有的神經網絡壓縮技術在處理參數規模大、精度要求高的神經網絡模型時效率低下,無法滿足現有應用的需求。

數值量化是神經網絡模型壓縮的一種有效手段。在模型推理過程中,低位寬(比特)資料的存取和計算可以大幅度節省存儲空間、訪存帶寬與計算負載,進而降低推理延遲和能耗。目前,大多數量化技術的位寬在 8bit。更為激進的量化算法,必須要修改硬體的操作粒度與資料流特征,才能在真實推理時獲得接近理論的收益。比如混合精度量化,激活資料的量化等方案。一方面,這些方案會顯式增加 book-keeping 存儲開銷和硬體邏輯,使得實際收益下降 [1,2,3]。另一方面,一些方案利用分布特征對量化範圍和粒度做限制,來減小上述硬體開銷 [4,5]。但其精度損失也受到不同模型和參數分布的影響,無法滿足現有應用的需求。

為此,本文的研究者提出了 SPARK 技術,一種可擴充細粒度混合精度編碼的軟硬體協同設計。

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

其核心優勢如下:

  • 固有比特備援:SPARK 不對模型進行壓縮,而是剔除資料表示中固有的比特備援,與現有的壓縮方案正交,可以協同使用。
  • 變長編碼方案:SPARK 創新了變長資料表示格式,有效壓縮模型大小,不需要增加額外的 book-keeping(如 index 等)代價(如硬體,通路與更新延遲)。該編碼方案對模型參數與激活值同樣适用。
  • 硬體相容性:SPARK 不需要修改硬體加速器微架構(如:脈動陣列),不會引入額外的設計複雜性,可行性較高。
  • 平衡精度與效率:在大型模型中,SPARK 通過其高效的編碼機制,不僅提升了處理速度,還精确地保持了模型的準确性。與其他同類型加速器相比平均獲得了 4.65 倍的加速,降低了 74.7% 的能耗。

研究動機

本工作源于對模型參數與激活值分布的觀察分析:由于權重和激活的分布成長尾型,量化後的資料仍會保持該分布,呈現高位稀疏的特性。具體的,按 INT8 精度量化後的模型參數中,80% 左右的資料都可以用 INT4 表示,隻有一小部分較重要的值需要高位寬存儲,如圖 1 所示。

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

圖 1 不同網絡中 INT4 範圍内資料和 INT8 範圍内資料的比例

為了利用資料表示中固有的比特備援,作者提出了 SPARK—— 一種可變長度的編碼方案,通過引入一位訓示符和新穎的編解碼模式來支援混合精度。這種編碼方案電路設計簡單,而且維持存儲對齊。

主要方法

在 SPARK 中,本工作隻簡單地用最高位作為訓示符區分高 / 低精度資料,而不同于其他分離尾數域和指數域的複雜編碼政策。同時,模型訓練時就可以模拟該編碼行為,而不用進行訓練後微調來補償由量化帶來的精度損失。

編碼方案及電路設計

該工作以 INT8 量化為例,每個資料為 8bit unsigned 整型。原始資料的編碼表示為(b0 , b1 , b2 , b3 , b4 , b5 , b6 , b7),具體的編碼原則如圖 2 所示。

1. 當原編碼中隻有b4 - b7 這低 4 位包含非零有效位時,直接進行低精度無損編碼,縮短為 4bit,其中最高位 C4 是訓示符位,設為 0。

2. 當原編碼中 b0-b3 這高 4 位也包含非零有效位時,進行高精度編碼。其中,最高位 c0 為訓示符位,設為 1。之後,視 b0 異或 b3 的結果,決定是否進行有損近似編碼或無損編碼。

a) 當原數值範圍在 [8, 127],即 b3-b1 位包含非零有效位時,最高位的訓示符位不作為數值位計算。當 b3 位為 1 時,在編碼階段将 b3 位設為 0 并将低 4 位 C4-C7 補償為 1111。雖然,這一步是有損的,但由于補償效應、損失精度較小。

b) 當原數值範圍在 [128, 255],即 b7-b0 位這 8 位都包含非零有效位時,最高位的訓示符位作為數值位計算。當 b3 位為 0 時,在編碼階段将 b3 位設為 1 并将低 4 位 C4-C7 補償為 0000。

當然,該工作也可以更激進地舍棄這些 fixed bit 進一步壓縮存儲容量與帶寬,但需要在解碼階段把 fixed bit 填補後再将 8bit 資料送入計算單元。這會增加一些解碼器的硬體開銷。

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

圖 2 SPARK 編碼對于不同範圍的原資料的應用

硬體上實作該編碼器隻需要用到零檢測器,多路選擇器和異或門等熟知的硬體子產品,具體電路設計如圖 3 所示:輸入 8bit 的原始資料,b0 ~ b4 先經過一個 5bit 的零檢測器,判定該輸入編碼為高 / 低精度,如果編碼為低精度則直接輸出 b4 , b5 , b6 , b7,若編碼為高精度,則根據公式 1 和公式 2 分情況編碼。

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會
深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

圖 3 SPARK 方案的編碼器電路設計

解碼方案及電路設計

本工作設計了一個硬體友好的解碼方案,下面将闡述如何将編碼轉換為十進制值。首先,本工作假定大端序存儲(Big Endian),解碼時輸入位寬為 4bit,使能信号 1 位。

解碼器電路需要的硬體子產品為熟知的多路選擇器,或門和非門。具體實作如圖 4 所示,解碼器每個周期讀入 4bit 資料和使能信号。

當使能信号為 1,則指該輸入是高精度值得後半部分編碼;當使能信号為 0 時,若 c0 = 0,則判定輸入是低精度值直接輸出 c0c1c2c3 為解碼值,若 c0 = 1 則根據 c3 判定将訓示符位作為數值位計算。公式 3 闡述了具體的判定規則,圖 4 是解碼器的電路設計圖。

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會
深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

圖 4 SPARK 方案的解碼器設計

整體架構

SPARK 可以與常用的張量運算核心(脈動陣列,乘加樹等)很好的相容。如圖 5 所示,解碼器放置在 weight buffer 與 PE 之間,在參數灌入 PE 陣列之前解碼;同樣也放置在 Activation Buffer 與 PE 之間,在激活值灌入 PE 陣列之前解碼。編碼則分為兩部分。對于參數的編碼可以離線進行,在 DRAM 中直接存儲已經編碼壓縮後的參數。線上硬體編碼器則放置在 PE 計算完産生 Activation 之後。

若要進一步挖掘計算效率上的提升,則可以設計一個常見的混合位寬運算單元(SPARK PE Unit),支援兩個 8bit 操作數的 MAC 操作,或者 2 對 4 個 4bit 操作數的 MAC 操作。

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

圖 5 SPARK 整體架構圖

實驗結果

文章使用 CNN-based 和 attention-based 的模型簇進行實驗,在 ImageNet 資料集上測試了 VGG-16,ResNet-18,ResNet-50 網絡,在 GLUE 資料集上測試 BERT-based 模型,以及 ViT 模型。與 SPARK 進行對比的 baseline 架構有:Eyeriss [6], BitFusion [7], OLAccel [1], ANT [8], Olive [9]。

模型準确性評估

在 ImageNet 資料集上,和原始的 FP32 模型相比,SPARK 上的平均準确率損失大約為 0.1%,對于 attention-based 的模型,SPARK 獲得了更好的準确性(+0.6%)。表 1 和表 2 展示了準确性評估的結果。

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

表 1 SPARK 和其他沒有微調的架構在精度損失和平均存儲位寬上的比較

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

表 2 SPARK 和其他架構在 SST-2 資料集上測試 BERT 的精度損失和位寬比較

性能和能耗評估

執行效率上,圖 5 展示了不同加速器在六個網絡上的執行效率對比。和其他架構相比,SPARK 最多獲得了 4.65 倍的加速,在 ResNet-50 網絡上,SPARK 有 80.1% 的明顯性能提升。

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

圖 5 不同架構設計的延遲比較

能耗上,圖 6 展示了不同架構的 DRAM,BUFFER,CORE 的能耗貢獻在 5 個網絡上的比較結果。對于 ResNet-50,SPARK 最多下降了 74.7%。

深度網絡資料編碼新突破,上交大SPARK登上計算機體系結構頂會

圖 6 不同架構設計的能耗比較

結語

SPARK 利用資料表示中的比特備援,結合高效的編解碼方案,使得 AI 模型在保證精度需求的情況下,利用本就存在的比特稀疏,這對于計算、存儲、傳輸都帶來了巨大的開銷節省。在處理越來越大的模型時,SPARK 展現出了其獨特的優勢。它不僅能夠處理大規模資料,還能在精度極其敏感的場景下保持高效率。這一點對于現在 AI 應用尤為關鍵,如自動駕駛、醫學診斷和語言處理等。

在未來,這套編碼方法還可以進一步擴充到交換晶片,存儲盤控晶片等關鍵位置,用于優化 AI 資料中心的通信瓶頸。

這一工作由上海交大先進計算機體系結構實驗室蔣力教授課題組(IMPACT)完成,同時也獲得了上海期智研究院的支援。第一作者是劉方鑫教授與博士生楊甯。

參考文獻

[1] Park, Eunhyeok, Dongyoung Kim, and Sungjoo Yoo. "Energy-efficient neural network accelerator based on outlier-aware low-precision computation." 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA). IEEE, 2018.

[2] Zadeh, Ali Hadi, et al. "Gobo: Quantizing attention-based nlp models for low latency and energy efficient inference." 2020 53rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO). IEEE, 2020.

[3] Guo, Cong, et al. "OliVe: Accelerating Large Language Models via Hardware-friendly Outlier-Victim Pair Quantization." Proceedings of the 50th Annual International Symposium on Computer Architecture. 2023.

[4] Song, Zhuoran, et al. "Drq: dynamic region-based quantization for deep neural network acceleration." 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA). IEEE, 2020.

[5] Jain, Shubham, et al. "BiScaled-DNN: Quantizing long-tailed datastructures with two scale factors for deep neural networks." Proceedings of the 56th Annual Design Automation Conference 2019.

[6] Y. -H. Chen, T. Krishna, J. S. Emer and V. Sze, "Eyeriss: An Energy-Efficient Reconfigurable Accelerator for Deep Convolutional Neural Networks," in IEEE Journal of Solid-State Circuits, vol. 52, no. 1, pp. 127-138, Jan. 2017.

[7] H. Sharma et al., "Bit Fusion: Bit-Level Dynamically Composable Architecture for Accelerating Deep Neural Network," 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA), Los Angeles, CA, USA, 2018, pp. 764-775.

[8] C. Guo et al., "ANT: Exploiting Adaptive Numerical Data Type for Low-bit Deep Neural Network Quantization," 2022 55th IEEE/ACM International Symposium on Microarchitecture (MICRO), Chicago, IL, USA, 2022, pp. 1414-1433.

[9] Guo, Cong et al. “OliVe: Accelerating Large Language Models via Hardware-friendly Outlier-Victim Pair Quantization,” In Proceedings of International Symposium on Computer Architecture (ISCA), 2023

繼續閱讀