国模无码人体一区二区_自慰系列无码专区_国产成人AV综合色_精品一区二区无码免费

Hi,歡迎
86-755-88844016 +852 2632 9637 6*12小時在線電話
AI高性能計算---寒武紀NPU
2023-08-22

寒武紀是國內最早一批研究AI芯片公司,其AI芯片NPU (Neural network Processing Unit)的設計源于其早期一系列的AI芯片架構研究,主要包括DianNao、DaDianNao、PuDianNao、ShiDianNao、Cambricon-X等一系列研究成果。

DianNao

DianNao是AI芯片設計中開創性研究,是為了實現處理大規模深度學習網絡運算而設計的專用芯片。如圖所示,芯片采用彼此分離的模塊化設計,主要包含控制模塊(Control Processor, CP)、計算模塊(Neural Functional Unit, NFU)和片上存儲模塊三部分。其中,片上存儲模塊又分為用于存儲輸入數據的NBin、用于存儲輸出數據的NBout以及用于存儲神經網絡模型權重參數的SB,這三塊存儲均為片上存儲,以實現低延時和低功耗。

目前深度學習網絡參數量都非常的大,片上緩存區容量大小一般都遠小于參數量,無法將整個網絡的參數全部放入片上存儲。所以DianNao架構設計采用了分時復用方法,每次只加載和執行網絡一部分,模型參數會分批次的加載到SB中,每個網絡層的輸入數據也會分批次的加載到NBin中,每層計算結果則寫入到NBout中。NFU (Neural Functional Unit)是由三級流水線組成計算單元,主要負責完成神經網絡的核心計算邏輯,比如乘法操作、加法操作和非線性函數變換等。未標題-5

Diannao布局(65nm)

拆分成不同的模塊的設計可以在功耗和性能上找到更佳的設計平衡點,其中,輸入存儲(NBin),權值存儲(SB),輸出存儲(NBout)各自單獨實現,一方面可以根據不同數據訪問特性設置不同傳輸帶寬,另一方面還可以實現類似Cache的功能,即處理器在對當前一組數據進行計算的同時,可以通過DMA啟動下一組數據或參數的加載。如圖所示,每個存儲單元配備有一個DMA和一個指令緩存FIFO,通過將計算過程和數據傳輸過程解耦實現數據高效預取,只要前一條指令使用完了數據,后一條指令就可以開始數據傳輸,而不需要等待前一條指令的計算完成。

計算單元NFU包括三個階段并以流水線形式執行,是神經網絡的核心計算模塊。NFU-1是一個16x16的并行乘法單元,即一個周期可以同時執行256個乘法操作,NFU-2包含16個加法樹,每個加法數包含15個加法器,加法器按照8-4-2-1的結構排列,NFU-3包含16個激活函數單元。從整體看,NFU的所有資源被劃分成16份,NFU-1中每一份包含16個乘法器,同時執行得到16個乘法結果,然后送入NFU-2中加法樹,每個加法樹中先由8個加法器對16個數執行加法操作得到8個結果,再依此由4-2-1個加法器對前面的結果進行加法操作,最終得到一個累加的結果之后再送入NFU-3的激活單元進行計算。

未標題-6

Diannao架構

DaDianNao

DaDianNao針對主流神經網絡模型提出了一種可以承載較大尺寸模型的芯片架構,主要針對服務器端的AI高性能訓練和推理計算任務。DianNao架構雖然在性能和功耗上相比CPU取得了比較明顯的改善,但其也存在一些問題和限制。DianNao主要通過三個片上buffer (NBin, SB, NBout)進行數據進行分塊處理,將不同類型的數據塊存放在不同的片上存儲中,其可以根據不同類型數據特性和復用進行針對性優化,使芯片與主存之間的數據搬運次數和效率達到最優,進而實現提高芯片整體性能和降低功耗的目的。DaDianNao則是為了處理大規模神經網絡模型而設計的AI芯片架構,其采用了基于tile和node的多芯片組設計來解決大模型的參數在芯片和內存通訊而帶來帶寬和功耗的問題。

如圖所示,每個tile包含一個NFU,四個eDRAM Bank和一個與中央eDRAM相連接的I/O接口,模型參數存放在離NFU更近的eDRAM存儲區域中,輸入輸出數據則需要通過訪存操作完成數據加載。tile使用eDRAM代替SRAM存儲模型參數,使其在存儲密度、訪存延遲和功耗之間針對大模型的資源需求上得到了更好的平衡。

未標題-7

tile架構


當模型的參數遠遠大于輸入/輸出數據時,將大尺寸模型參數布署在離計算部件更近的eDRAM中,以減少計算過程中的訪存延時,而將尺寸較小的輸入/輸出通過訪存操作進行加載、可以減少有效訪存開銷,將SB拆分放置以減少數據訪問沖突,進一步減少訪存延遲。

DaDianNao的NFU相比于DianNao更復雜,并增加了針對模型訓練而設計的功能模塊。改進后的NFU計算單元如圖所示,在每個tile中計算的中間值會放在tile的本地eDRAM中,計算完畢后再將其輸出。

未標題-8

DaDianNao NFU架構

在多芯片組中一個芯片為一個node,如圖所示,一個node包含16個tile和兩個中央的eDRAM Bank,他們之間通過Fat-tree相互連接。這兩個中央eDRAM存儲區一個用于將輸入數據廣播到每個tile,一個用于收集所有tile的輸出結果。

未標題-9

node結構

在多芯片系統中,每個芯片的四周集成了四組HyperTransport 2.0的通信通道,用于芯片與四周的芯片相連組成一個多芯片系統。相比與DianNao,在實現相同算力的條件下,其芯片面積減少了28.5%,將參數儲存在片上的eDRAM中降低了片外訪存的帶寬需求,參數存儲單元放在離NFU更近區域,并進行分塊存放,不僅減少了數據訪問的沖突也提高了數據傳輸速度。

ShiDianNao

ShiDianNao是基于CNN模型實時采集圖像進行計算處理的專用AI處理器,芯片與圖像傳感器直接相連接,圖像數據不需要經過DRAM存儲器就可直接輸入到芯片的處理單元進行處理。如圖所示,ShiDianNao中的存儲部件與DianNao類似,分為NBin、NBout和SB,分別用于存儲神經網絡的輸入數據、輸出數據和權重參數。運算單元包括神經網絡專用計算單元NFU和通用邏輯運算單元ALU。ShiDianNao在存儲單元和計算單元中間引入了一個緩存區域Buffer Controller,用于緩存輸入數據和匯總NFU的計算結果以提高處理器的并行度。

未標題-10

ShiDianNao架構


ShiDianNao中的NFU由Px*Py的二維PE (Processing Elements)陣列組成,支持數據在PE之間流動,NFU讀取參數和輸入數據后分發給不同PE處理,之后NFU會收集匯總處理后的結果,計算結果會輸出給一個ALU單元,ALU里包含了一些非線性激活函數的硬件實現,ALU的計算結果再通過Buffer Controller最終寫入到NBout里。

每個PE單元還有內部的存儲結構,以支持PE之間的數據傳輸。如圖所示,每個PE內部由一個乘法器、一個加法器、若干個寄存器、兩組用于數據交互的FIFO等部件組成,其中FIFO-H用于存儲水平方向數據,FIFO-V用于存儲豎直方向數據。每個PE有三個輸入接口,一個是用于接收控制信號operand,一個用于接收權重參數Kernel,還有一個用于接收輸入數據,其來源可能是右邊PE的輸出、下邊PE的輸出或者NBin。每個PE有兩個輸出,一個用于將計算結果寫到NBout,另一個則用于傳輸給鄰居PE以實現不同PE之間的數據傳輸。由于卷積運算的相鄰滑動窗口之間有著大量的重復數據,通過FIFO-H和FIFO-V兩個模塊接收相鄰PE的數據,實現PE間數據傳輸和復用,可以極大的減少存儲帶寬的需求,Kernel數據以廣播的形式發送到每個PE參與計算。

未標題-11

ShiDianNao PE架構

PuDianNao

PuDianNao在分析了各類機器學習算法在訪存行為、計算模式上的差異后從更細粒度的數據重用和計算操作上進行了重新設計,使其能能夠支持包括KNN、DNN、SVM、Classification Tree等七種經典機器學習算法的AI處理器。

PuDianNao的架構由若干個FUs (Function Unit)單元,三個不同用途的數據緩存模塊 (Hot Buffer, Cold Buffer, Output Buffer),一個指令緩存模塊(Inst Buffer)和一個控制模塊(Control Module)等組成。 整體來看,在分析和總結了不同機器學習特性的基礎上,PuDianNao通過定義專用硬件來提升整體計算性能,通過設計特定的緩存模塊來提升訪存性能。

未標題-12

PuDianNao架構

Cambricon-X

Cambricon-X主要是針對于神經網絡中的稀疏性的特點,進行設計的芯片架構。神經網絡中的稀疏性主要分為兩種,一種是權重參數的稀疏化,另一種是特征向量的稀疏化。Cambricon-X實現的是權重的稀疏化在硬件實現上的支持,特征向量稀疏化由于隨輸入數據動態變化,使得其管理和控制的邏輯更為復雜,所以Cambricon-X在硬件上沒有這一方面進行支持。

神經網絡中的稀疏性一方面可以通過稀疏化訓練(比如在訓練過程中增加正則化和門控函數等)增加模型參數的稀疏性,另一方面還可以通過剪枝算法進一步提升模型的稀疏性。韓松等人的研究證明,通過剪枝技術可以在基本不影響模型計算精度的情況下將深度學習網絡模型權重系數去掉90%以上。雖然算法上可以實現模型的高度稀疏化,但這種稀疏化常常是不規則的稀疏,目前的主流的CPU和GPU等硬件平臺都無法對不規則的稀疏進行有效的運算加速,所以性能上仍然受到比較大的限制。

Cambricon-X提出了一種針對稀疏神經網絡高效運算的硬件實現方案。如圖所示,Cambricon-X的架構設計與DianNao系列的設計由很多相似之處,主要包括控制處理器CP,緩沖區控制器Buffer Controller,兩個數據緩沖區NBin和NBout,內存訪問模塊DMA和計算單元Computation Unit,其中計算單元由多個處理元素(Processing Elements, PE)組成。其主要的區別在于中間Buffer Controller模塊,這個模塊是針對稀疏加速器特別引入的模塊,也實現稀疏訪存和計算的核心。

未標題-13

Cambricon-X架構

為了實現網絡參數的稀疏化計算,需要將數值為0的數從權重參數中剔除,并記錄參數中非0數據的位置,在計算時先從輸入數據中挑選出非0權重對應位置的數據,重新排列后的數據與非0參數一并傳給對應的PE執行計算操作。在Buffer Controller主要由Indexing Module (IM)和一個專用功能單元BCFU組成,稀疏數據的篩選主要是由IM來完成的,BCFU主要用于存儲待IM篩選的數據。

未標題-14

Buffer Controller架構

IM模塊的引入實現了僅將索引后的數據傳給PE完成后續的計算操作,一方面索引后的數據量在稀疏網絡中占比很小,可以極大的減少BC區與PE之間的帶寬需求,另一方面索引后的數據在BC區域完成了數據的重排,在PE上也僅需要執行較少的并行計算操作。

PE是神經網絡計算單元,如圖所示,SB為參數緩沖區,用于緩存網絡的權重參數,雖然片上存儲空間有限無法將所有權重參數加載進來,但是權重有更強的重復訪問特性,所以SB設計依然可以極大的減少數據訪存帶來的開銷。PEFU是計算邏輯的硬件實現,其本質是神經網絡計算所需的一組乘加器的組合連接。

未標題-15

Cambricon-X PE架構

總結

綜上所述,從Diannao系列和Cambricon-X來看,針對AI計算同時具有數據密集型和計算密集型的特性,NPU主要通過增加更多的并行計算單元來實現更高效率的計算,同時將計算靠近存儲的方式來解決數據高效訪存的問題。根據不用的應用場景和算法特性通過軟硬件協同設計的思路來設計特定領域的AI芯片,并在性能、功耗、面積等指標之間找到最佳的平衡點。

鄭重聲明:文中僅代表作者觀點,不代表本公司觀點,本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或者刪除,感謝您的關注!


熱門資訊
光電器件有哪些主要特性
光電器件作為現代科技領域的重要組成部分,其在通信、能源、檢測等領域的應用日益廣泛。光電器件的主要特性是其功能和應用的基礎,本文將對這些特性進行詳細的探討,并闡述其在現代科技中的應用。
LG Innotek
Brand: LG Innotekbrand introductionLG Innotek is a global component manufacturing company. - The c...
Lighting Science
Brand: Lighting Sciencebrand introductionLighting Science Group Corporation is the market leader i...
電磁式電壓互感器的工作原理和分類
電磁式電壓互感器通常用于電力系統中,用于測量高電壓輸電線路上的電壓。它們還可以用于監測電力系統中的電壓波形和幅值,以便及時發現電力系統中的故障和問題。在本文中,我們將詳細介紹電磁式電壓互感器的工作原理和分類。
熱繼電器和熱過載繼電器區別
熱繼電器和熱過載繼電器都是常見的電氣保護設備,但它們的工作原理和保護對象有所不同。在本篇文章中,我們將詳細介紹熱繼電器和熱過載繼電器的區別。
鉭電容器的種類和封裝
鉭電容器是一種電子元器件,使用鉭金屬作為電極材料。它們通常分為有極性和無極性兩種類型,并且有多種不同的封裝形式。在本文中,我們將詳細討論鉭電容器的種類和封裝。
熱繼電器和熔斷器的區別
熱繼電器和熔斷器都是常見的電器元件,它們在電路中都起到了保護作用。雖然它們都可以在電路中斷開電路,但它們之間存在一些區別。在本篇文章中,我們將詳細介紹熱繼電器和熔斷器的區別。
FT2232開發板
采用FT2232芯片設計的開發板,將IO口完全引出,可在此基礎上設計接口擴展板
AI高性能計算---存算一體
存算一體或存內計算是將存儲與計算完全融合,直接利用存儲器進行數據處理或計算。在傳統的馮諾依曼架構下,數據的存儲和計算是分開的,由于存儲和計算的性能存在加大的差距,處理器訪問存儲數據的速率遠遠小于處理器計算速率,數據在內存與主存之間搬運的過程其能耗也遠遠高于處理器的計算所消耗的能量。
AI高性能計算---Google TPU
自Google在2016年推出第一代自研人工智能芯片Tensor Processing Unit, TPU,經過數年發展已升級到了第4代 TPU v4 (截止到2022年底)。TPU架構設計也是通過高效地并行運算大量乘法和累加操作來實現深度學習卷積層,全連接層等網絡層的高效計算。
用戶信息:
電話號碼
中國大陸+86
  • 中國大陸+86
  • 中國臺灣+886
  • 中國香港+852
公司名稱
郵箱
產品型號
產品數量
備注留言