存算一體或存內(nèi)計算是將存儲與計算完全融合,直接利用存儲器進行數(shù)據(jù)處理或計算。在傳統(tǒng)的馮諾依曼架構(gòu)下,數(shù)據(jù)的存儲和計算是分開的,由于存儲和計算的性能存在加大的差距,處理器訪問存儲數(shù)據(jù)的速率遠遠小于處理器計算速率,數(shù)據(jù)在內(nèi)存與主存之間搬運的過程其能耗也遠遠高于處理器的計算所消耗的能量。
從NPU和TPU的架構(gòu)設(shè)計可以看出,其本質(zhì)都是在解決數(shù)據(jù)高效訪存的問題,只是實現(xiàn)方式略有差異??偨Y(jié)看來主要包括了:
通過提高通信帶寬實現(xiàn)數(shù)據(jù)的高速傳輸和降低功耗。
將數(shù)據(jù)存儲盡量靠近計算單元,從而降低數(shù)據(jù)搬運的延遲和功耗,比如多級緩存和片上存儲。
提高數(shù)據(jù)在時間和空間上的復用效率,減少數(shù)據(jù)與主存的通信次數(shù)。
存算一體通過將計算單元和存儲單元集成在同一個芯片,讓存儲單元具有計算能力,使得計算可以在存儲器單元內(nèi)完成,極大的降低了數(shù)據(jù)搬運帶來的延遲和功耗,其特別適用于深度學習這種需要大規(guī)模的數(shù)據(jù)搬運和大規(guī)模并行計算的場景。
存內(nèi)計算
存內(nèi)計算一般包括數(shù)字計算和模擬計算兩種實現(xiàn)方式,模擬計算能效高但計算精準度低,數(shù)字計算計算精準度高但功耗較大,當前主流的存內(nèi)計算主要還是以模擬計算為主。
模擬存內(nèi)計算主要基于物理定律在存算陣列上實現(xiàn)乘加運算,以憶阻器上的矩陣乘法MxN為例,運算前,先將矩陣M按行列位置存入憶阻器,在輸入端矩陣M使用不同電壓值來表示,根據(jù)歐姆定律和基爾霍夫定律在輸出端可以得到對應的乘加后電流矢量,多個存算陣列并行,便可完成多個矩陣乘法計算。
數(shù)字存內(nèi)計算是通過在存儲陣列中加入與或門、乘法器、加法器等邏輯計算電路,使存儲陣列不僅具備存儲功能還具備計算能力。由于需要為每個存儲單元增加了邏輯電路,所以其在芯片面積上并不占優(yōu)勢,限制了其計算能力的拓展,因此,當前數(shù)字存內(nèi)計算實現(xiàn)更多的采用先進工藝來實現(xiàn),由于工藝和成本的因素,其應用范圍受到了比較大的限制。
類腦計算
基于人腦的脈沖(spiking)模擬計算框架下的脈沖神經(jīng)網(wǎng)絡(luò) (SNN)有望在實現(xiàn)人工智能的同時降低計算平臺的能耗。
在SNN模型中上游神經(jīng)脈沖Vi通過突觸權(quán)重Wi調(diào)節(jié),在給定時間內(nèi)產(chǎn)生的合成電流 ∑iVi?Wi等效于點積運算。從圖例可以看出,脈沖計算通過電流的進出模擬神經(jīng)元計算過程,整個系統(tǒng)基于事件驅(qū)動,深度學習網(wǎng)絡(luò)計算又是高度稀疏的,所以通過脈沖通信和計算可以實現(xiàn)極低能耗下大規(guī)模并行計算。
脈沖計算示例圖
從脈沖計算過程可以看到,脈沖計算的硬件結(jié)構(gòu)需要存算一體的體系設(shè)計將神經(jīng)元和突觸陣列緊密放置在一起。所以當前的脈沖神經(jīng)網(wǎng)絡(luò)芯片基本都采用模擬存內(nèi)計算的存算一體的架構(gòu)設(shè)計。
技術(shù)挑戰(zhàn)
存內(nèi)計算雖然有很多的優(yōu)勢,但商業(yè)應用上還面臨著諸多挑戰(zhàn),其在器件研發(fā)、電路設(shè)計、芯片架構(gòu)、生成制造、EDA工具鏈以及軟件算法等環(huán)節(jié)都還面臨不少的問題需要解決和突破,整體技術(shù)成熟度較弱。
存算一體化需要同時滿足存儲和計算兩者的設(shè)計需求,比如存儲單元的可靠性、擦寫次數(shù)、器件一致性等,計算單元的響應速度、功耗等。從當前半導體電路設(shè)計和制造工藝,要同時兼顧難度較大。
受限于工藝和芯片面積,當前商用存內(nèi)計算的芯片算力較小,能支持的算力和算子有限,所以能力支持的神經(jīng)網(wǎng)絡(luò)算法也有限,通用性較差。
當前主流的模擬存內(nèi)計算的計算精準度較差,計算結(jié)果不準確會導致實際計算結(jié)果與理想結(jié)果產(chǎn)生偏差。數(shù)字存內(nèi)計算的雖然計算精準度高,但運算開銷較大。
當前邏輯單元電路實現(xiàn)還是以基于二進制數(shù)字精準運算為主,模擬運算在理論和電路實現(xiàn)上相對缺乏,導致模擬計算的芯片實現(xiàn)難度較高。
存內(nèi)計算芯片設(shè)計與常規(guī)芯片有較大差異,現(xiàn)有的EDA工具無法提供標準單元庫以供芯片設(shè)計者使用,缺乏大規(guī)模存算陣列的快速開發(fā)工具導致產(chǎn)品化效率低。
鄭重聲明:文中僅代表作者觀點,不代表本公司觀點,本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或者刪除,感謝您的關(guān)注!