神經網路的AI加速器簡介 - 趣關注

文章推薦指數: 80 %
投票人數:10人

相比CPU或GPU等通用處理器,基於FPGA或ASIC的定製化AI加速器可以充分利用神經網路的計算特性,以去除不必要的邏輯資源開銷,從而實現具備更高能效比 ... 首頁> 科技> 神經網路的AI加速器簡介神經網路的AI加速器簡介由 我是天邊飄過一朵雲 發表于 科技2021-05-10神經網路是什麼?神經網路(NeuralNetwork,NN)作為人工智慧(ArtificialIntelligence,AI)領域的一類機器學習模型,近年來得到了很多關注。

目前,神經網路在影象、影片、語音、文字資料的生成、處理等任務上得到了廣泛應用。

相較於傳統機器學習模型,神經網路模型的主要特點是:(1)模型構建啟發於人腦的結構,模型架構與神經元結構有天然的相似性;(2)模型具備自主學習提取多層次特徵的能力,不需要利用人為定義好的特徵提取方式。

可處理不同型別資料的神經網路模型模型構建:一些具有代表性的神經網路模型的示意圖如上圖所示,其中最簡單的多層感知機(Multi-LayerPerceptron,MLP)是多層的線性、非線性函式的堆疊。

除此之外,還有適合處理影象資料的卷積神經網路(ConvolutionalNeuralNetwork,CNN)、適合處理序列資料的迴圈神經網路(RecurrentNeuralNetwork,RNN)和適合處理圖結構化資料的圖神經網路(GraphNeuralNetwork,GNN)等。

這些模型根據資料域的特徵設計了不同的運算元和機制,比如CNN模型中的卷積操作、RNN模型中的狀態和門機制、GNN模型中的傳播聚合操作等。

神經網路模型本質上就是一個複雜的多層次函式,裡面包含大量的引數,而此函式的設計會引入很多人為先驗作為歸納偏置。

學習演算法“讓模型自己學習如何提取特徵”引出了兩個問題:(1)模型從何學習?答案是海量的資料;(2)如何讓模型學習,如何調整模型引數?目前主流的神經網路訓練方法是梯度最佳化方法,而引數梯度可以透過反向傳播演算法進行計算。

反向傳播演算法是神經網路學習的基石演算法,無論是怎樣的資料域和任務,都可以利用反向傳播演算法與梯度最佳化進行神經網路模型引數的學習。

通常來說,面對一個學習任務,工程師搭建一個神經網路系統所遵循的路徑是比較清晰的,首先設計資料處理方式、合適的損失函式,根據資料、硬體需求選擇合適的模型,然後透過反向傳播演算法與梯度最佳化進行模型學習。

神經網路算法系統神經網路的流行:作為一個適用性廣且具有統一清晰的實踐路徑的演算法框架,神經網路在近年來得到了廣泛關注。

相對於其他機器學習演算法,神經網路在演算法、實踐、系統方面都有其獨特性。

從演算法角度來說,神經網路具有強大的表示能力,能夠從大量資料中學習各種特徵以持續提升效果,並且可以處理各種不同的高維度複雜資料域;從實踐角度來說,搭建神經網路算法系統有著較為統一清晰的實踐路線;從系統角度來說,由於使用較為統一的算子集合和演算法框架就可以處理各種資料和任務,學術界和工業界興起了一波專用框架和加速器的設計熱潮。

學術界和工業界均設計了很多軟體框架、硬體加速器來幫助實現更高效的神經網路的訓練和推理流程。

統一的框架既能幫助研究者和工程師更快地搭建和驗證算法系統,又進一步促進了神經網路演算法的發展。

AI加速器的發展近年來,神經網路顯著的識別效果是以龐大的模型計算量和儲存量為代價的,這給實際應用場景中神經網路的高效部署帶來了不小的挑戰。

目前神經網路的演算法研究仍然在不斷地增加神經網路模型的規模和結構複雜度來實現更高的準確率。

以CNN為例,用於輸入影象大小為224×224的分類任務的典型CNN模型需要高達390億次浮點運算操作(Floating-pointOperations,FLOP)和500MB以上的模型引數。

由於計算複雜度與輸入影象的大小有關,處理解析度更高的影象可能需要超過1000億次的浮點運算操作。

因此,選擇合適的計算平臺對於神經網路的高效部署是極為重要的。

一個高效能的桌面級通用處理器(CentralProcessingUnit,CPU)每秒可以執行100億~1000億次浮點運算(10~100GFLOP/s的峰值效能),完成上述神經網路模型一次前向推理的時間開銷通常為百毫秒量級,這對於延時不敏感的場景已足夠。

然而,受限於功耗,移動端的邊緣場景很難部署高效能CPU,而嵌入式CPU的峰值效能通常比高效能CPU低1~2個數量級,難以滿足邊緣場景的實時性需求。

即使是高效能CPU,也很難滿足延時敏感的應用場景算力需求,比如自動駕駛應用通常要求在毫秒級內完成目標檢測以實現安全可靠的系統決策。

相比之下,基於高度平行計算架構的通用影象處理器(GraphicProcessingUnit,GPU)可以提供高達10TFLOP/s的峰值效能,是目前高效能神經網路應用的主流計算平臺。

主流深度學習框架(比如Caffe和Tensorflow等)都面向GPU提供了易於使用的介面,英偉達也提供了底層的深度學習最佳化庫cuDNN以加速神經網路在GPU上的部署,這些都使得GPU快速成為了神經網路加速的首選計算平臺。

但是GPU存在功耗較高的問題,即便是面向移動端的嵌入式GPU(比如NVIDIATX2GPU)的功耗也在10W左右,無法滿足物聯網對極低功耗(1mW~1W)的需求。

除了CPU和GPU這類通用處理器之外,工業界也投入了大量精力開發基於現場可程式設計邏輯陣列(FieldProgrammableGateArray,FPGA)或專用積體電路(ApplicationSpecificIntegratedCircuit,ASIC)的定製化AI加速器。

基於FPGA和ASIC的兩類針對特定應用領域進行的專用硬體架構設計中,基於FPGA的方案具有更短的開發週期和靈活的可程式設計性,同時具備較高的計算並行度和相對適中的功耗;而ASIC的開發需要付出高昂的開發時間和人力物力成本,但是可以最大程度地實現滿足效能和功耗需求的定製化加速器。

加速器的設計方法大致可分為兩種,一種最直接的設計方案是針對每一種神經網路模型單獨設計硬體架構並實現“硬化”。

由於ASIC高昂的開發成本和冗長的開發週期,這種直接“硬化”的方案對於持續迭代和變化的神經網路模型來說必然是不可接受的。

得益於FPGA的可程式設計和靈活性,直接“硬化”的方案主要應用於FPGA定製化AI加速器中。

對於這類方案,比如fpgaConvNet和DeepBurning,通常採用暫存器傳輸級(RegisterTransferLevel,RTL)引數化模板或高層次綜合(High-LevelSynthesis,HLS)來將神經網路模型的每一層或某一部分子圖直接對映成一個單獨的計算模組,最終神經網路模型的完整硬體架構由多個引數對映後的計算模組組成。

另一種方案是設計面向AI的處理器,即“xPU”。

這種方案需要引入面向神經網路的定製化指令集(InstructionSetArchitectu;re,ISA)和編譯器,相應的硬體架構通常由指令控制器和多個與指令繫結的計算和訪存模組組成。

xPU的主要優勢在於可以使用一個統一和可配置的硬體架構來實現對多種神經網路模型的支援,同時軟體編譯器可以從模型生成硬體可解析的指令序列,並採取多種最佳化策略來提高計算效能。

xPU在實現流程上將硬體架構和神經網路模型相隔離,適用於FPGA和ASIC實現,並且在實現靈活性和通用性的同時,還保證了高效的計算效能。

目前主流的AI加速器,比如中科院的“DianNao”系列、谷歌的TPU系列和賽靈思的DPU系列等,大多基於xPU的設計思路。

對於神經網路的高效部署而言,能效比是一個非常重要的指標,其反映了系統在單位功耗下所能實現的處理效能。

更高的能效比意味著系統使用更低的能耗實現更強的處理效能。

相比CPU或GPU等通用處理器,基於FPGA或ASIC的定製化AI加速器可以充分利用神經網路的計算特性,以去除不必要的邏輯資源開銷,從而實現具備更高能效比的AI系統。

TAG:神經網路模型演算法GPUAI上一篇:<>相關文章2799元神機榮耀Note10的液冷加雙Turbo到底有多強?為你深度解析機器人小冰填詞《AI北京》為“歌唱北京”投稿電腦硬碟知多少,為什麼我們的硬碟實際空間會比引數小一截?國際象棋思維演算法,讓1800等級分以下的你也能擁有特級大師的思維搜索推薦文章儀表上出現一個“小人上廁所”圖示,女司機緊張向網友求教嬰兒被嚇到是什麼症狀?這些土方法都靠譜嗎?該如何去驚創4青你3即將播出,同一時間段兩大選秀對打,你更看好哪個?除草劑能除草卻不傷害農作物,原來奧妙有這麼多,種田人記牢了英語原版閱讀:Grasslands顶部



請為這篇文章評分?