<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

存內計算技術工具鏈——量化篇

存內計算開發者 ? 來源:jf_13681693 ? 作者:jf_13681693 ? 2024-05-16 12:35 ? 次閱讀

本篇文章將重點講述存內計算技術工具鏈之“量化”,我們將從面向存內計算芯片深度學習編譯工具鏈、神經網絡中的量化(包括訓練后量化與量化感知訓練)、基于存內計算芯片硬件特性的量化工具這三個方面來對存內計算技術工具鏈的量化進行闡述。

一.深度學習編譯工具鏈

工具鏈,英文名稱toolchain,通常是指在軟件開發或硬件設計中使用的一系列工具和軟件,用于完成特定任務或流程。這些工具一般接連地使用,從而完成一個個任務,這也是“工具鏈”名稱的由來。一般工具鏈的研發,大致與通用應用程序生命周期一致,分為五個階段,如圖1所示,圖中包括每個階段對應的工具等[1]。

wKgZomZEmdiAIdAqABnBLeia9y8361.png

而在AI芯片領域,工具鏈特指連接模型算法到芯片部署的端到端系列工具。面向存算一體芯片的深度學習編譯工具鏈包括深度學習的算法設計、前端網絡的模型轉換、后端配置空間映射、存算一體的電路設計及各步驟的中間優化等模塊;如今,面向傳統芯片的深度學習編譯工具鏈發展健全,而面向存算一體芯片的深度學習編譯工具鏈在前端優化策略、后端空間映射等方面都仍有欠缺,這使得深度學習部署在存算一體芯片上移植性低、成本高,因此需要我們設計出能實現端到端的存算一體工具鏈及軟硬件系統,而本文所述的“量化”,便是工具鏈中的重要工具之一。

wKgaomZEmfmAZmaYABaDY-JFFtM896.png圖2 深度學習編譯器常用設計架構梳理

面向存內計算芯片的深度學習編譯工具鏈通常包括量化、圖優化、編譯、調度、映射、模擬等工具:

(1)量化和優化工具:

在涉及到機器學習和深度學習模型的存內計算應用中,量化和優化工具變得尤為重要。這些工具可以幫助將模型減小到能夠在內存中高效運行的大小,同時盡量保持模型的準確性。

TensorFlow Lite: 提供了一套工具,支持模型的量化,使其更適合在移動設備和邊緣設備上運行。
PyTorch Mobile: 類似地,PyTorch提供了工具來優化和減小模型的大小,以便在資源受限的環境中運行。
(2)編譯器與編程框架:

存內計算通常需要定制化的編譯器,它能夠理解特定存內計算硬件的特性,并將算法和程序轉換為能在存儲單元內執行的形式。
而編程??蚣鼙仨氝m應存內計算的特點,比如提供API或DSL(領域特定語言),允許開發者表達針對存內計算架構的并行性和數據局部性。
(3)映射與調度工具:

數據布局和計算任務在存儲陣列中的映射至關重要,相應的工具應能智能地分配和管理數據在內存單元中的位置,優化計算效率和帶寬使用。
調度工具則負責在不同時刻根據資源約束安排計算操作,確保有效利用存內計算硬件的并行性和容量。
(4)模擬與驗證工具:

設計階段需要用到高級和低級的模擬器來模擬存內計算芯片的行為,驗證功能正確性以及性能預期。
驗證工具幫助確保邏輯功能、功耗分析、時序收斂以及與主處理器或其他組件之間的交互都符合設計需求。
(5)開發和測試工具:

Jenkins, GitLab CI/CD: 這些持續集成和持續部署工具可以自動化存內計算應用的構建、測試和部署過程。
JUnit, PyTest: 提供了豐富的測試框架,幫助開發者編寫和執行單元測試和集成測試。
二.神經網絡中的量化

量化工具鏈可以推動工具鏈和存內計算技術的進一步發展,下面將介紹量化的基本知識,重點圍繞神經網絡量化進行講解。

(1)量化的概念[3]

量化通常是指將連續值或較大范圍的值簡化為較小范圍內的值的過程。在數字信號處理中,這通常指的是將模擬信號轉換為數字信號的過程。在神經網絡中,量化通常指的是將浮點數(如32位的Float)轉換為低位數的表示(如8位或16位的Int)。

(2)量化的意義

近年來,深度學習技術在多個領域快速發展,特別是在計算機視覺領域,深度神經網絡已在圖像分類、目標檢測等各種計算機視覺學習任務上展示了突破性結果。然而,這些方案通常是通過擴大神經網絡規模來提高性能,需要花費更高的計算資源和內存需求。這導致大多數深度神經網絡只能在圖形處理器等高算力設備上運行推理,然而此類設備往往需要很大的功耗才能達到實時的推斷效果。因此,開發輕量級的深度神經網絡、進行模型量化對于計算資源有限的邊緣設備來說至關重要。此外,深度學習技術的發展也帶來了神經網絡模型的快速發展,隨之而來的就是模型參數的大幅度提升[4]。如圖3所示,在Transformer架構興起之后,模型規模呈指數級增長。神經網絡的參數數量已經從Alexnet的6000萬個增長到OpenAI GPT-3的1750億個[5],對模型的存儲空間和計算資源等提出了更高的需求。

wKgaomZEmkKAeZ-BAA53RxDibbk417.png圖3 神經網絡模型參數隨時間變化

模型量化技術可以在一定程度上緩解上述問題,即通過數據壓縮,來降低模型的存儲空間、內存占用和計算資源需求,從而提高模型的推理速度,豐富應用場景,量化已經成為深度神經網絡優化的大方向之一。然而量化由于涉及到舍入或截斷操作,會引入一定的誤差。因此,量化技術的一個重要的挑戰是在減少模型大小和保持模型精度之間進行折衷。

(3)模型量化的實例

TensorFlow[6]提供了兩種量化方法,訓練后量化(POT, Post Training Quantization)和量化感知訓練(QAT, Quantization Aware Training)。

①訓練后量化[7]

PTQ量化可以無需原始的訓練過程就能將預訓練的FP32網絡直接轉換為定點網絡。這個方法通常不需要數據或者只需要很少的校準數據集,并且這部分數據通??梢苑浅H菀椎墨@得。量化過程中無需對原始模型進行任何訓練,而只對幾個超參數調整,從而以高效的方式去對預訓練的神經網絡模型進行量化。這使得神經網絡的設計者不必成為量化方面的專家,從而讓神經網絡量化的應用變得更加廣泛。

如圖4所示,為標準的PTQ量化流程,包括跨層均衡(CLE)、添加量化器(Add Quantizers)、權重范圍設置(Weight Range Setting)、自適應舍入(AdaRound)、偏差校正(Bias Correction)、激活范圍設置(Activation Range Setting)等步驟,這個流程為許多計算機視覺以及自然語言處理模型及任務實現了有競爭力的PTQ結果。根據不同的模型,有些步驟可能是不需要的,或者其他的選擇可能會導致相同或更好的性能。

wKgZomZEmnqATTM3AA1ZolmPSDo515.png圖5 標準PTQ量化流程

三.基于硬件特性的量化工具量化精度與硬件性能之間存在較強的耦合。當前的神經網絡開發環境和深度學習算法已針對電腦CPU、GPU、NPU、DSP等部分,以及傳統意義上執行速度慢的浮點運算進行了廣泛的優化,使得在電腦端設計神經網絡變得更加簡單,在電腦端訓練、運行神經網絡變得高效。但需要注意的是,PyTorch、TensorFlow等常用開發環境中默認的權重參數通常是Tensor Float 32格式,由于開發環境對該計算格式的優化,使得如果在電腦端訓練BNN網絡或整數類型網絡,甚至需要額外編寫加速整數運算的算法來加速整數運算[9]。而現有的量產存內計算芯片主要支持較低比特的整數形式數據計算和存儲,因此為了保證網絡和訓練的高效,需要通過軟件工具對訓練得到的權重參數進行精度轉換和調整,再部署到存內計算芯片中。

wKgaomZEmsaACE6KAADx418Y_Rc150.png圖6 量化工具鏈流程示意圖

神經網絡依賴大量數據來發現規律,原則上可以容忍一定的計算誤差。但是,由于神經網絡的復雜性(例如深度網絡),將權重參數量化為整數形式可能會導致推理結果與訓練習到的規律顯著不同。因此,在量化過程之后,通常需要對網絡進行重新訓練和權重參數的微調,以確保量化后網絡的效果。

算法與硬件需要協同設計才能在不損失精度的情況下,充分發揮存內計算芯片的優勢。存內計算芯片旨在突破計算和存儲間的數據搬移瓶頸,加速神經網絡中常見的乘累加運算,但神經網絡中地其他運算則需要依靠外部電路進行處理?;谠撎匦?,神經網絡的設計需要在傳統算法的基礎上進行改進,例如通過重新設計數據結構和訪問模式來減少不必要的數據移動,或者調整計算過程以適應芯片的特定能耗模式,最終實現量化感知的應用算法結構與訓練框架,這一過程離不開量化工具鏈的支持。已有存內計算芯片廠商,如知存科技和后摩智能,建立了自己的開發者網站,并推出了開發者工具、量化工具鏈和開發板。例如知存科技的神經網絡映射編譯軟件棧witin_mapper,后摩智能的后摩大道軟件平臺。這些工具的推出不僅為開發者提供便利,而且進一步促進了存內計算技術的發展。

參考資料

[1] A glimpse into the exploding number of DevOps tools, which are filling the gap created by the waterfall model’s displacement.(Source:GrowthPoint Technology Partners)

[2] Li M, Liu Y, Liu X, et al. The deep learning compiler: A comprehensive survey[J]. IEEE Transactions on Parallel and Distributed Systems, 2020, 32(3): 708-727.

[3] 神經網絡中的量化-簡介 - 知乎 (zhihu.com).

[4] P. -Y. Chen, H. -C. Lin and J. -I. Guo, “Multi-Scale Dynamic Fixed-Point Quantization and Training for Deep Neural Networks,” 2023 IEEE International Symposium on Circuits and Systems (ISCAS), Monterey, CA, USA, 2023, pp. 1-5.

[5] B. -S. Liang, “AI Computing in Large-Scale Era: Pre-trillion-scale Neural Network Models and Exa-scale Supercomputing,” 2023 International VLSI Symposium on Technology, Systems and Applications (VLSI-TSA/VLSI-DAT), HsinChu, Taiwan, 2023, pp. 1-3.

[6] B. Jacob, S. Kligys, B. Chen, et al, “Quantization and training of neural networks for efficient integer-arithmetic-only inference,” in Proceedings of the IEEE conference on computer vision and pattern recognition, 2018, pp. 2704-2713.

[7] 再讀《神經網絡量化白皮書》- 0x03 訓練后量化(PTQ) - 知乎 (zhihu.com).

[8] 再讀《神經網絡量化白皮書》- 0x04 訓練時量化(QAT) - 知乎 (zhihu.com).

[9] Hubara I, Courbariaux M, Soudry D, et al. Binarized neural networks[J]. Advances in neural information processing systems, 2016, 29.

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 神經網絡
    +關注

    關注

    42

    文章

    4584

    瀏覽量

    99076
  • 機器學習
    +關注

    關注

    66

    文章

    8156

    瀏覽量

    130782
  • 深度學習
    +關注

    關注

    73

    文章

    5248

    瀏覽量

    120003
  • 量化
    +關注

    關注

    0

    文章

    34

    瀏覽量

    2306
  • 存內計算
    +關注

    關注

    0

    文章

    27

    瀏覽量

    1304
收藏 人收藏

    評論

    相關推薦

    論基于電壓域的SRAM存內計算技術的嶄新前景

    這篇文章總結了馮·諾伊曼架構及其在處理數據密集型應用中所面臨的性能和能耗問題。為了應對這一挑戰,文章介紹了存內計算技術,其中重點討論了基于電壓域的SRAM存內計算技術。 在馮·諾伊曼架構
    的頭像 發表于 05-17 14:38 ?206次閱讀
    論基于電壓域的SRAM存內<b class='flag-5'>計算技術</b>的嶄新前景

    計算WTM2101編譯工具 資料

    領先的計算芯片企業。公司針對AI應用場景,在全球率先商業化量產基于計算技術的神經網絡芯片
    發表于 05-16 16:33

    淺談計算生態環境搭建以及軟件開發

    后,我們現在將轉向實現存計算技術潛力的關鍵:計算生態環境的搭建以及軟件開發的具體細節。它們不僅為
    發表于 05-16 16:40

    計算技術特點

    。8. 自動化云計算不論是應用、服務和資源的部署,還是軟硬件的管理,都主要通過自動化的方式來執行和管理,從而極大地降低整個云計算中心龐大的人力成本。9. 節能環保云計算技術能將許許多多分散在低利
    發表于 03-20 15:05

    ARM DynamIQ計算技術介紹

    ARM DynamIQ全新時代的計算技術
    發表于 02-03 06:49

    可重構計算技術在汽車電子領域面臨哪些問題?

    可重構計算技術在汽車電子領域的應用前景可重構計算技術在汽車電子領域面臨的問題
    發表于 05-12 06:40

    Vector向量計算技術與SIMD技術的對比

    什么是向量計算技術?什么是SIMD技術?它們之間有什么區別?看到這個標題的時候,可能各位讀者都會有各種各樣的疑問。那么本文,筆者將基于RISC-V指令集,盡量以簡單易懂的方式,向大家介紹二者的聯系和區別,并
    發表于 09-01 15:09

    如何去實現一種分布式計算技術

    分布式計算技術是什么?如何去實現一種分布式計算技術?
    發表于 09-24 07:52

    HDC2021技術分論壇:跨端分布式計算技術初探

    ,我們將對跨端分布式計算技術進行詳細的分析。一、跨端分布式算力技術介紹跨端分布式計算是HarmonyOS系統利用分布式軟總線和分布式計算引擎,提供多設備協同的跨端分布式
    發表于 11-15 14:54

    HDC2021技術分論壇:跨端分布式計算技術初探

    帶來易協同、低延遲和高穩定的分布式體驗。下面,我們將對跨端分布式計算技術進行詳細的分析。一、跨端分布式算力技術介紹跨端分布式計算是HarmonyOS系統利用分布式軟總線和分布式計算引擎
    發表于 11-23 17:06

    Vector向量計算技術與SIMD技術的對比簡述

    什么是向量計算技術?什么是SIMD技術?它們之間有什么區別?看到這個標題的時候,可能各位讀者都會有各種各樣的疑問。那么本文,筆者將基于RISC-V指令集,盡量以簡單易懂的方式,向大家介紹二者的聯系
    發表于 03-09 07:59

    IBM加速完善云計算技術平臺

    IBM加速完善云計算技術平臺 最近的一系列市場活動表明,在完善云計算技術平臺的道路上,藍色巨人正在邁開大步。在不久前剛剛發布了一款生成能夠幫助用戶更高效
    發表于 11-06 08:49 ?373次閱讀

    迅馳移動計算技術

    迅馳移動計算技術 迅馳的概念:英特爾迅馳移動計算技術是英特爾最出色的筆記本電腦技術。它不僅僅是一枚處理器,同時還具備集成的無線
    發表于 12-18 09:51 ?325次閱讀

    計算技術及應用

    計算技術及應用
    發表于 01-22 13:38 ?16次下載

    計算就業前景_云計算技術就業方向

    本文主要分析了云計算就業前景及云計算技術就業方向。
    的頭像 發表于 07-24 15:01 ?1.2w次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>