作者 | Dr. Luo
簡介:東南大學(xué)工學(xué)博士,英國布里斯托大學(xué)博士后,復(fù)睿微電子英國研發(fā)中心GRUK首席AI科學(xué)家,常駐英國劍橋。Dr. Luo長期從事科學(xué)研究和機器視覺先進產(chǎn)品開發(fā),曾在某500強ICT企業(yè)擔(dān)任機器視覺首席科學(xué)家。
AI算法在自動駕駛ADS領(lǐng)域的行業(yè)應(yīng)用,其當(dāng)前從感知到認知的演進方向,主要體現(xiàn)在:
1)能夠在統(tǒng)一空間支持多模傳感器感知融合與多任務(wù)共享,在提升有限算力的計算效率的同時,確保算法模型在信息提取中對極端惡劣場景(雨雪霧、低照度、高度遮擋、傳感器部分失效、主動或被動場景攻擊等)的泛化感知能力,降低對標(biāo)注數(shù)據(jù)和高清地圖的過度依賴;
2)預(yù)測與規(guī)劃聯(lián)合建模,離線與在線學(xué)習(xí)相結(jié)合,監(jiān)督與自監(jiān)督學(xué)習(xí)相結(jié)合,從而能夠處理不確定性下的安全行駛與有效決策,提供認知決策行為的可解釋問題,通過持續(xù)學(xué)習(xí)解決新場景問題。
當(dāng)前,對應(yīng)于ADS傳感器負載多樣化和融合感知決策算法多樣化的演進趨勢,ADS的算力需求和芯片加速能力以(十倍速/每幾年)的持續(xù)高增長態(tài)勢呈現(xiàn)。ADS領(lǐng)域大算力NPU芯片的當(dāng)前發(fā)展現(xiàn)狀,真可謂是:大算力之時代,以感知策,四兩撥千斤者;狂洗牌乎戰(zhàn)局,唯快應(yīng)變,一力降十會也。
??
圖1. DNN任務(wù)占比分析: CNN vs Transformer
(圖表分析來自文獻1)
如圖1 所示,ADS算法從Compute-bound向Memory-bound演進。ADS的存算混合需求,可以通過“硬件預(yù)埋,算法迭代,算力均衡“ ,來提供一個向前兼容的解決方案,以通用大算力NPU設(shè)計來解決算法未來的不確定性,具體體現(xiàn)在:1) 底層架構(gòu)的演進:從存算分離到近內(nèi)存計算,最終走向內(nèi)存計算; 2) 數(shù)據(jù)通道與模型:高速數(shù)據(jù)接口+數(shù)據(jù)壓縮+模型壓縮+低精度逼近計算+稀疏計算加速; 3) 并行的頂層架構(gòu):模型-硬件聯(lián)合設(shè)計,以及硬設(shè)計可配置+硬件調(diào)度+軟運行可編程調(diào)度引擎。
老子曾曰“合抱之木,生于毫末;九層之臺,起于壘土;千里之行,始于足下。” 老子又曰 ”天下難事,必作于易;天下大事,必作于細。”處理艱難問題從易入手,致力遠大目標(biāo)從微著力。ADS-NPU芯片的架構(gòu)設(shè)計,同樣需要用【見微知著】的能力,來解決異構(gòu)計算、稀疏計算、逼近計算、內(nèi)存計算等幾類常見的難題與挑戰(zhàn)。
1. 異構(gòu)計算之設(shè)計挑戰(zhàn)
??
圖2. 脈動陣列架構(gòu)(圖表分析來自文獻1)
??
圖3. 可配置的脈動陣列架構(gòu)(圖表分析來自文獻1)
對比CPU十百級的并行處理單元和GPU上萬級的并行處理單元,NPU會有百萬級的并行計算單元,可以采用Spatial加速器架構(gòu)來實現(xiàn),即Spatial PE空間單元陣列通過NoC,數(shù)據(jù)總線,或跨PE的互聯(lián)來實現(xiàn)矩陣乘運算(全卷積計算或全連接FC計算)、數(shù)據(jù)流高速交互、以及運算數(shù)據(jù)共享。
粗顆粒度的可配置架構(gòu)CGRA是Spatial加速器的一種形態(tài),即可配置的PE Array通過納秒或微秒級別可配置的Interconnect來對接,可以支持配置驅(qū)動或者數(shù)據(jù)流驅(qū)動運行。
如圖2和圖3所示,脈動Systolic加速器架構(gòu)也是Spatial加速器的一類實現(xiàn)方式,其主要計算是通過1D或2D計算單元對數(shù)據(jù)流進行定向固定流動處理最終輸出累加計算結(jié)果,對DNN輸出對接卷積層或池化層的不同需求,可以動態(tài)調(diào)整硬件計算邏輯和數(shù)據(jù)通道,但存在的問題難以支撐壓縮模型的稀疏計算加速處理。
NPU的第二類計算單元是Vector矢量加速器架構(gòu),面向矢量的Element-wise Sum、Conv1x1卷積、Batch Normalization、激活函數(shù)處理等運算操作,其計算可以通過可配置的矢量核來實現(xiàn),業(yè)界常用的設(shè)計是標(biāo)量+矢量+陣列加速器的組合應(yīng)用來應(yīng)對ADS多類傳感器的不同前處理需求和多樣化算法模型流水線并行處理的存算混合需求。
NPU SoC也可以采用多核架構(gòu)技術(shù),即提供千百級的加速器物理核來組件封裝和Chiplet片上互聯(lián)提供更高程度的平行度,尤其是適合大算力下高并行數(shù)據(jù)負載,這需要底層硬件調(diào)度與上層軟件調(diào)度相結(jié)合,提供一個分布式硬件計算資源的細顆粒度運行態(tài)調(diào)用。
NPU另外一個在演進中的內(nèi)存處理器PIM架構(gòu),即通過將計算靠近存儲的方式來降低數(shù)據(jù)搬移能耗和提升內(nèi)存帶寬。可以分成近內(nèi)存計算與內(nèi)存計算兩種類型。近內(nèi)存計算將計算引擎靠近傳統(tǒng)的DRAM或者SRAM cell,保持它們的設(shè)計特性。
內(nèi)存計算需要對內(nèi)存cell添加數(shù)據(jù)計算邏輯,多采用ReRAM或者STT-MRAM新型工藝,目前采用模擬或數(shù)字類型的設(shè)計,可實現(xiàn)》100TOPS/Watt的PPA性能,但技術(shù)難題是如何在運行態(tài)時進行大模型參數(shù)動態(tài)刷新,工藝實現(xiàn)可能也落后于市場預(yù)期。
??
圖4. AI算法模型負載的算子分布統(tǒng)計(圖表分析來自文獻2)
??
圖5. nVidia A100的TensorCore架構(gòu)與UPCYCLE 融合架構(gòu)的計算效率對比
(圖表分析來自文獻2)
當(dāng)前市場上主流AI芯片,常用的架構(gòu)有以下幾種形態(tài):1) GEMM加速架構(gòu)(TensorCore from nVidia, Matrix Core from AMD); 2) CGRA (初創(chuàng)公司); 3) Systolic Array (Google TPU); 4) Dataflow (Wave, Graphcore,初創(chuàng)公司); 4) Spatial Dataflow (Samba Nova, Groq); 5) Sparse架構(gòu) (Inferentia)。
如圖4與圖5所示案例可以看出,ADS-NPU設(shè)計其中有一個挑戰(zhàn)是低計算效率問題。異構(gòu)計算架構(gòu)一個主要的目的是希望從設(shè)計方法學(xué)上找到一個硬設(shè)計時優(yōu)化可配置與軟運行時動態(tài)可編程的平衡點,從而能夠提供一個通用的方案覆蓋整個設(shè)計空間。
另外值得一提的是,UPCYCLE 的融合架構(gòu)案例,涉及到SIMD/Short Vector, Matrix Multiply, Caching, Synchronization等多核優(yōu)化策略,這個案例,說明只是通過短矢量處理+傳統(tǒng)的內(nèi)存緩存+同步策略的傳統(tǒng)方法結(jié)合,在不使用標(biāo)量+矢量+陣列的微架構(gòu)組合條件下,依舊可以從頂層軟件架構(gòu)層面的優(yōu)化(指令集和工具鏈優(yōu)化策略,模型-硬件聯(lián)合優(yōu)化)來實現(xiàn)7.7x整體計算性能提升與23x功耗效率提升。
2. 稀疏計算之設(shè)計挑戰(zhàn)
ADS-NPU低效率計算問題,從微架構(gòu)設(shè)計領(lǐng)域,可以涉及到:1) 稀疏數(shù)據(jù)(稀疏DNN網(wǎng)絡(luò),或者稀疏輸入輸出數(shù)據(jù))導(dǎo)致PE對大量零值數(shù)據(jù)的無效計算問題;2)PE之間由于軟件硬件調(diào)度算法的效率低,PE之間互相依賴導(dǎo)致的延遲問題;3)數(shù)據(jù)通道與計算通道峰值能力不匹配導(dǎo)致的數(shù)據(jù)等待問題。
上述問題2和問題3可以從頂層架構(gòu)和存算微架構(gòu)設(shè)計上來有效解決。問題1可以對稀疏數(shù)據(jù)進行壓縮處理來有效提升微架構(gòu)計算單元PE的效率。如圖6和圖7所示,稀疏數(shù)據(jù)圖編碼的案例,可以有效提升數(shù)據(jù)存儲空間和對數(shù)據(jù)通道的沖擊,計算單元依據(jù)非零數(shù)據(jù)NZVL分布圖進行有效甄別計算,以添加簡單的邏輯單元為代價就可以將一個72PE的計算效率提升到95%,數(shù)據(jù)帶寬降低40%。
??
圖6. 稀疏計算微架構(gòu)案例(圖表分析來自文獻3)
??
圖7. 稀疏數(shù)據(jù)圖編碼案例(圖表分析來自文獻3)
3. 逼近計算之設(shè)計挑戰(zhàn)
??
圖8. 算法模型與量化表征的關(guān)系案例(圖表分析來自文獻6)
算法模型與量化表征的關(guān)系案例如圖8所示,逼近計算設(shè)計可以通過算法模型的低比特參數(shù)表征+量化后訓(xùn)練的方式,在不降低算法模型精度的情況下,通過時間和空間復(fù)用的方式,等效增加低比特MAC PE單元。
逼近計算的另外一個優(yōu)勢是可以與稀疏計算相結(jié)合。低比特表征會增加數(shù)據(jù)的稀疏特性,類似ReLU等激活函數(shù)和池化計算也會產(chǎn)出大量零值數(shù)據(jù)。另外浮點數(shù)值如果用bit-slices進行表征,也會有大量高位零比特特征。
零值輸出數(shù)據(jù)意味著可以通過預(yù)計算可以直接跳過后續(xù)大量的卷積計算等。如圖9所示的案例,其中簡單的bit-slice數(shù)據(jù)分解表征會產(chǎn)生偏置分布,可以通過Signed Bit-Slice方法來解決,從而將PPA性能有效提升到(x4能耗,x5性能,x4面積)。
??
圖9. Signed Bit-Slice和RLE游程編碼案例 (圖表分析來自文獻4)
4. 內(nèi)存計算之設(shè)計挑戰(zhàn)
ADS-NPU設(shè)計其中有一個挑戰(zhàn)是數(shù)據(jù)墻問題能耗墻問題,即計算單元PE存算分離設(shè)計導(dǎo)致數(shù)據(jù)重復(fù)搬移,數(shù)據(jù)共享困難,數(shù)據(jù)通道與計算通道峰值能力不匹配會導(dǎo)致PE的低效率和SRAM/DRAM高能耗。
??
圖10. MRAM取代SRAM案例 (圖表分析來自文獻5)
一個有趣的嘗試是用新型工藝MRAM (STT/SOT/VGSOT-MRAM) 來部分或全部取代SRAM, P0方案是只取代算法模型參數(shù)緩存和全局參數(shù)緩存;P1方案是MRAM全面取代SRAM。對比SRAM-only架構(gòu),從圖10 的案例可以看出MRAM-P0解決方案可以有》30%能耗提升,MRAM-P1解決方案有》80%能耗提升,芯片面積減少》30%。
??
圖11. Von Neumann與內(nèi)存計算的架構(gòu)對比 (圖表分析來自文獻6)
??
圖12. 內(nèi)存計算的模擬墻問題 (圖表分析來自文獻6)
當(dāng)前初創(chuàng)公司的內(nèi)存計算架構(gòu)策略需要對內(nèi)存cell添加數(shù)據(jù)計算邏輯,通過采用ReRAM或者STT-MRAM新型工藝,采用模擬或數(shù)字類型的設(shè)計來實現(xiàn)。模擬內(nèi)存計算IMC對打破傳統(tǒng)的Von Neumann計算機架構(gòu)內(nèi)存墻和能耗墻應(yīng)該更有優(yōu)勢,但需要同時打破設(shè)計中的模擬墻問題,這也是當(dāng)前數(shù)字設(shè)計IMC-SRAM或者IMC-MRAM占多數(shù)的原因。
如圖11和圖12所示,IMC的主要問題來自于模數(shù)轉(zhuǎn)換ADC/DAC接口和激活函數(shù)的接口帶來的設(shè)計冗余。一種新的實驗設(shè)計是用基于RRAM的RFIMC微架構(gòu)(RRAM cells + CLAMP circuits + JQNL-ADCs + DTACs)。每個RRAM cell代表2比特內(nèi)存數(shù)據(jù),4個RAM cell來存儲8比特的權(quán)重,JQNL-ADC采用8比特浮點數(shù)。
從圖13可以看出RFIMC的微架構(gòu)能夠部分解決模擬墻的問題,可實現(xiàn)》100TOPS/Watt的PPA性能,但存在的問題是,只支持小規(guī)模的全矢量矩陣乘,超大尺寸的矩陣乘,需要將模擬數(shù)據(jù)進行局部搬移,是否有數(shù)據(jù)墻的問題仍未知。
??
圖13. RFIMC的性能分解圖 (圖表分析來自文獻6)
5. 算法-硬件之共同設(shè)計挑戰(zhàn)
ADS算法多樣化的演進趨勢和對NPU大算力存算的混合需求,需要算法-NPU聯(lián)合設(shè)計來實現(xiàn)模型整體效率。
常用的量化與模型裁剪能夠解決一部分問題,模型-硬件聯(lián)合搜索,可以認為NPU預(yù)定義的硬件架構(gòu)是模板,網(wǎng)絡(luò)模型ASIC-NAS是一個典型的案例,即在有限硬件計算空間內(nèi)進行DNN的模型搜索和模型小型化,尋求計算單元的最佳組合模型來提升相同計算復(fù)雜度下的等效算力效率。
NPU添加了硬件的可配置和細顆粒可調(diào)度,但依舊存在很大的性能約束性。如圖14 和圖15所示,SkyNet算法與硬件共同設(shè)計的案例,是將NPU細顆粒度的PE單元進行Bundle優(yōu)化封裝,其價值在于可以降低NAS架構(gòu)搜索的高維空間,從而減低對硬件底層架構(gòu)的依賴關(guān)系和優(yōu)化算法的復(fù)雜度。
??
圖14. SkyNet算法與硬件共同設(shè)計案例 (圖表分析來自文獻7)
??
圖15. SkyNet-Bundle-NAS示例 (圖表分析來自文獻7)
作者 | Dr. L. Luo
參考文獻:
【1】J. Kim, and etc., “Exploration of Systolic-Vector Architecture with Resource Scheduling for Dynamic ML Workloads”,
https://arxiv.org/pdf/2206.03060.pdf【2】M Davies, and etc., “Understanding the limits of Conventional Hardware Architectures for Deep-Learning”, https://arxiv.org/pdf/2112.02204.pdf
【3】C. Wu, and etc., “Reconfigurable DL accelerator Hardware Architecture Design for Sparse CNN”,
https://ieeexplore.ieee.org/document/9602959
【4】D. Im, and etc., “Energy-efficient Dense DNN Acceleration with Signed Bit-slice Architecture”,
https://arxiv.org/pdf/2203.07679.pdf
【5】V Parmar, and etc., “Memory-Oriented Design-Space Exploration of Edge-AI Hardware for XR Applications”,
https://arxiv.org/pdf/2206.06780.pdf
【6】Z Xuan,and etc., “High-Efficiency Data Conversion Interface for Reconfigurable Function-in-MemoryComputing”,
https://ieeexplore.ieee.org/document/9795103
【7】X Zhang, and etc., “Algorithm/Accelerator Co-Design and Co-Search for Edge AI”,
https://ieeexplore.ieee.org/document/9785599
評論
查看更多