AI芯片最簡單直接設計思路就是將神經元直接映射到硬件芯片上,如圖所示,全硬件實現方案(Full-Hardware Implementation)將每個神經元映射為一個邏輯計算單元,每個突觸映射為一個數據存儲單元,這種架構設計可以實現一個高性能且低功耗的AI芯片,比如Intel ETANN芯片。在全硬件實現方案中上一層輸出數據和權重相乘,相乘的結果再相加,然后再經過一個激活函數輸出到下一層計算。這種架構設計將計算和存儲緊密的耦合在一起,使得芯片在進行高速計算的同時由能避免大規模的數據訪存,在提高整體計算性能的同時也降低了功耗。
全硬件實現方案具有設計簡單、計算性能高、功耗低等特定,但它僅適用于小規模的神經網絡計算,對于大型神經網絡的計算存在明顯的硬件限制。如圖所示,當網絡層的節點為16 x 16時,芯片面積只需要0.71 mm2 ,但當網絡層的節點為32 x 32時,芯片面積則需要2.66 mm2 ,當網絡層包含的節點進一步增大時所需要的芯片面積和能耗將大幅提升,所以直接映射方案已經不能滿足當前規模越來越大的深度學習算法發展。
ASIC芯片的設計基本都是針對領域計算特性,圍繞訪存、能耗、吞吐率、成本、靈活性等指標進行優化和設計。隨著深度學習算法發展,神經網絡深度和規模越來越大,網絡結構也從CNN為主的網絡架構設計逐漸演變到Transformer為主的網絡架構設計,算法對芯片需求也從計算密集性過度到存算密集性,AI芯片的設計也從偏計算走向存算一體的混合計算模式。具體體現在:
底層架構:從存算分離到存算一體設計。
數據通信:從高速數據通信到低精度計算和稀疏計算。
模型設計:從模型-硬件獨立設計到模型-軟硬件聯合優化設計。
時域計算
時域計算指采用定制化指令集的專用處理器,其通過指令流水線對邏輯計算單元(Arithmetic Logic Unit, ALU)和存儲系統進行統一管理和調度,ALU流水線從存儲系統中讀取數據,經過多級流水線處理后將最終運算結果寫回存儲系統。深度學習神經網絡模型主要是大量的線性代數運算,而控制流程則相對簡單,所以,AI芯片通常采用高度并行的計算架構設計,為了提高處理器并行計算能力,需要讓一條指令同時針對多個數據元素執行相同的操作?;谏疃葘W習的計算流程相對固定的特點,多個固定步驟的計算可以通過多個ALU流水線設計來實現高效計算,比如矩陣運算中的多數據乘累加計算。
時域計算架構
中國科學院計算技術研究所的DianNao系列架構設計是一種典型的時域計算架構設計。DianNao系列的芯片主要包含三部分:神經功能單元(Neural Functional Unit, NFU)、三個不同功能片上存儲區和控制器。NFU和存儲通過控制器的指令進行調度,運算核心NFU按照卷積運算流程劃分為乘法功能段NFU1、加法功能段NFU2以及非線性激活函數功能段NFU3的三級流水線設計。DianNao針對深度學習的計算特性進行定制設計,使其在AI計算上能夠獲得比通用處理器更高的能效。
空域計算
與時域計算不同,空域計算中每個計算單元PE都具有獨立的控制單元和存儲單元。空域計算架構通常由一維或二維PE陣列構成,每個PE內部自帶控制器和緩存,PE之間可以直接傳遞數據。除此之外,還有片上全局緩存、片外DRAM等不同層次存儲構成的多級存儲系統??沼蛴嬎慵軜嬂么罅縋E陣列完成高效的并行計算,通過PE之間的數據流動減少處理器與主存之間的通信次數。
空域計算架構
Google TPU (Tensor Processing Unit)是空域計算架構的典型代表之一,它包含一個256x256個MAC組成二維矩陣乘法陣列,此外其內部還集成了歸一化/池化單元和非線性激活單元等。TPU的二維矩陣乘法陣列按照脈動陣列(Systolic Array)方式互連,PE計算的數據來自前一個時鐘周期中相鄰PE的計算結果,PE在當前時鐘周期計算得到的結果則按同樣的方式流入相鄰的PE在下一個時鐘周期參與計算,由于數據在陣列中不同PE之間的流動像血液在血管中脈動傳輸一樣按照規定的節奏進行傳遞和計算,所以稱之為脈動陣列架構。
數據復用
數據復用指在計算過程中對同一數據進行重復使用以減少對存儲器訪問次數。深度學習中的數據復用通常包括:輸入數據復用、輸出數據復用和權重數據復用。例如,在DianNao架構中SB和NBin分別用來存儲權重和數據神經元數據,NFU單元用來進行點乘和累加的運算,輸出數據存儲在NBout中,在計算過程中輸出數據會先輸出到緩存器中直到完成所有的部分和的累加后才會被寫回。
存儲優化
彌補計算單元和存儲器之間的差距的途徑主要包括:
高帶寬的數據通信技術,使用更先進的通信技術提高數據傳輸的效率。
通過增加片上存儲容量讓數據更靠近計算單元,減少數據在計算單元和內存之間的搬運成本。
使用高密度片上存儲技術,例如eDRAM存儲單元由晶體管和電容構成,相比于SRAM具有更高的存儲密度。
使用三維集成(3D Integration)存儲器技術將多塊存儲器在垂直方向上堆疊起來,以獲得更大存儲容量。
直接在存儲器內部實現計算,即存內計算,目前受限制造工藝和計算精度等問題,其應用范圍還比較有限。
鄭重聲明:文中僅代表作者觀點,不代表本公司觀點,本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或者刪除,感謝您的關注!