新四季網

面向深度學習業務的加速裝置及方法與流程

2023-09-20 07:37:30 1


本發明涉及電路設計領域,具體涉及一種面向深度學習業務的加速裝置及方法。
背景技術:
:隨著深度學習算法在語音識別、圖像識別、自然語言理解等領域大規模成功應用,用戶使用深度學習相關業務的次數和頻率在逐漸增加;為了不降低用戶的使用體驗,企業也逐年增加深度學習相關業務響應的並發計算能力。現有的提升並發計算能力的方法主要有兩種:一種是單純增加CPU的方式,增加並發計算能力;另一種是採用CPU+GPU的異構系統,提升並發計算能力。單純增加CPU的提升並發計算能力的方式,會隨著業務的增長,線性增加CPU的數量,成本也隨之成線性增長,且CPU用於用戶程序的計算部件有限,如果用於深度學習計算,其CPU資源難以完全利用。採用CPU+GPU異構系統提升並發計算能力的方式,因GPU是專門為圖形計算設計的處理晶片,如將其用於深度學習計算,必會導致部分資源不適配、利用不完全等問題。技術實現要素:本發明提供一種面向深度學習業務的加速裝置及方法,可以有效提高計算效率,提升性能功耗比。為此,本發明提供如下技術方案:一種面向深度學習業務的加速裝置,用於對伺服器中的待處理數據進行深度學習計算,包括:設置於伺服器端的網卡、與所述伺服器通過總線連接的計算控制模塊、以及第一存儲器和第二存儲器;所述計算控制模塊為可編程邏輯器件,包括:控制單元、數據存儲單元、邏輯存儲單元、以及分別與所述網卡、第一存儲器和第二存儲器通信的總線接口、第一通信接口和第二通信接口;所述邏輯存儲單元用於存儲深度學習控制邏輯;所述第一存儲器用於存儲網絡各層的權重數據和偏置數據;在所述計算控制模塊上電後,所述控制單元運行所述深度學習控制邏輯,以進行深度學習計算;在進行深度學習計算時,所述控制單元通過所述總線接口和所述網卡從所述伺服器中讀取待處理數據,並將所述待處理數據通過所述第二通信接口存放到第二存儲器中,依照所述深度學習控制邏輯依次從第一存儲器和第二存儲器中獲取網絡當前層計算所需的數據,計算當前層的輸入參數和輸出參數,並將所述輸出參數存儲到所述第一存儲器或第二存儲器中;計算完成後,所述控制單元將網絡輸出參數通過所述總線接口傳送給伺服器。優選地,所述可編程邏輯器件為FPGA晶片或CPLD晶片。優選地,所述總線為PCI總線或PCI-E總線。優選地,所述第一存儲器為堆疊內存,所述第二存儲器為DDRSDRAM。優選地,所述待處理數據在所述第二存儲器中以行主序方式存儲;所述輸出參數在所述第一存儲器或第二存儲器中以行主序方式存儲;所述權重數據和偏置數據在所述第一存儲器中以列主序方式存儲。優選地,參與計算的所有數據採用32位全精度浮點型格式進行計算和存儲。優選地,所述總線接口通過直接內存存取方式從所述網卡中讀取待處理數據。一種面向深度學習業務的加速方法,包括:將網絡各層的權重數據和偏置數據預先加載到第一存儲器中;在進行深度學習計算時,可編程邏輯器件從伺服器中讀取待處理數據,並將其存放到第二存儲器中;可編程邏輯器件根據預置的深度學習控制邏輯依次從第一存儲器和第二存儲器中獲取網絡當前層計算所需的數據,計算當前層的輸入參數和輸出參數,並將所述輸出參數存儲到所述第一存儲器或第二存儲器中;計算完成後,可編程邏輯器件將網絡輸出參數通過所述總線接口傳送給伺服器。優選地,所述待處理數據在所述第二存儲器中以行主序方式存儲;所述輸出參數在所述第一存儲器或第二存儲器中以行主序方式存儲;所述權重數據和偏置數據在所述第一存儲器中以列主序方式存儲。優選地,所述可編程邏輯器件為FPGA晶片或CPLD晶片;所述第一存儲器為堆疊內存,所述第二存儲器為DDRSDRAM。本發明實施例提供的面向深度學習業務的加速裝置及方法,針對深度學習相關業務的需求,採用CPU+可編程邏輯器件的異構形式,並依據深度學習算法的特點設計可編程邏輯器件與CPU硬體結構以及可編程邏輯器件內部運行機制,使得可編程邏輯器件能將其全部電力消耗在深度學習程序計算中。與現有的單純CPU系統或CPU+GPU系統相比,在同等的投入成本時,本發明方案的CPU+可編程邏輯器件的異構結構能達到更優的性能功耗比。附圖說明為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明中記載的一些實施例,對於本領域普通技術人員來講,還可以根據這些附圖獲得其他的附圖。圖1是本發明實施例中DNN結構示意圖;圖2是本發明實施例面向深度學習業務的加速裝置的結構框圖。具體實施方式為了使本
技術領域:
的人員更好地理解本發明實施例的方案,下面結合附圖和實施方式對本發明實施例作進一步的詳細說明。為了便於對本發明方案的理解,下面以DNN(深度神經網絡)為例,簡要說明深度學習算法的計算流程。如圖1所示,DNN由一個輸入層、多個隱層(圖中所示為6個隱層)和一個輸出層組成,為一個全連接網絡,輸入層與第1隱層的連接權重有D*H個,隱層之間的權重各為H*H,第6隱層與輸出層間的權重有H*M個。此外,隱層和輸出層的每個節點還附有相應的偏置。深度學習計算流程如下:步一:初始化網絡模型:從初始模型文件中讀取網絡的初始權重W和偏置B;步二:讀取N個樣本作為輸入層的信號;XN×D=x1,1x1,2...x1,Dx2,1x2,2...x1,D............xN,1xN,2...xN,D]]>步三:計算第1隱層各節點的輸入和輸出:輸入信號為:輸出信號為:YN×H(1)=f(AN×H(1))=f(a1,1(1))f(a1,2(1))...f(a1,H(1))f(a2,1(1))f(a2,2(1))...f(a2,H(1))............f(aN,1(1))f(aN,2(1))...f(aN,H(1))]]>步四:計算第2隱層各節點的輸入和輸出:輸入信號為:輸出信號為:步五:以此類推,計算出其他四個隱層各節點的輸入和輸出:輸入信號為:輸出信號為:上述f為一個非線性變換函數,k=2,3,4,5,6;步六:計算輸出層的輸入和輸出:輸入信號為:輸出信號為:由上述計算流程可以分析出深度學習算法有以下特點:1.流水線方式計算從第一層開始,每層的輸出作為下一層各節點的輸入,在進行下下一層計算時,不需要保留上上一層的計算數據。為此,可以設計一個容量適中的存儲器進行此部分數據存儲;另外,模型參數和中間數據需要反覆的讀寫,可以採用具有高速讀寫性能的晶片。2.浮點矩陣運算涉及浮點的乘加操作,因此選用DSP(DigitalSignalProcessor,數位訊號處理器)資源較多的可編程邏輯器件作為計算部件。為此,本發明實施例提供一種面向深度學習業務的加速裝置及方法,針對深度學習相關業務的需求,採用CPU+可編程邏輯晶片的異構形式,並依據深度學習算法的特點設計可編程邏輯晶片與CPU硬體結構以及可編程邏輯晶片內部運行機制。如圖2所示,是本發明實施例面向深度學習業務的加速裝置的結構框圖。該裝置用於對伺服器中的待處理數據進行深度學習計算,包括:設置於伺服器端的網卡、與所述伺服器通過總線連接的計算控制模塊、以及第一存儲器和第二存儲器;所述計算控制模塊為可編程邏輯晶片,包括:控制單元、數據存儲單元、邏輯存儲單元、以及分別與所述網卡、第一存儲器和第二存儲器通信的總線接口、第一通信接口和第二通信接口。其中,所述邏輯存儲單元用於存儲深度學習控制邏輯;所述第一存儲器用於存儲網絡各層的權重數據和偏置數據。在所述計算控制模塊上電後,所述控制單元運行所述深度學習控制邏輯,以進行深度學習計算;在進行深度學習計算時,所述控制單元通過所述總線接口和所述網卡從所述伺服器中讀取待處理數據,並將所述待處理數據通過所述第二通信接口存放到第二存儲器中,依照所述深度學習控制邏輯依次從第一存儲器和第二存儲器中獲取網絡當前層計算所需的數據,計算當前層的輸入參數和輸出參數,並將所述輸出參數存儲到所述第一存儲器或第二存儲器中。需要說明的是,在實際應用中,所述總線可以為PCI(PeripheralComponentInterconnect,外設部件互連標準)總線或PCI-E(PCIExpress)總線,PCI-E設計標準可以為x8Gen3,其傳輸速度為6GB/s左右。所述可編程邏輯器件可以採用FPGA(現場可編程門陣列)晶片或CPLD(複雜可編程邏輯器件)晶片,如果採用FPGA晶片,還需要外部存儲器(比如EPROM),以存儲所述深度學習控制邏輯。在計算控制模塊上電後,將外部存儲器中的深度學習控制邏輯讀入邏輯存儲單元(即內部RAM)中,然後運行該邏輯。所述第一存儲器可以採用HMC(HybridMemoryCube,堆疊內存),所述第二存儲器可以採用DDRSDRAM(DoubleDataRateSynchronousDynamicRandom,雙倍數據速率同步動態隨機存儲器),比如DDR4。另外,為了更好地保證計算精度,參與計算的所有數據採用32位全精度浮點型格式進行計算和存儲。下面以第一存儲器採用HMC、第二存儲器採用DDR、針對DNN網絡為例,結合圖2詳細說明本發明裝置進行深度學習計算的過程,具體過程如下:1.初始化,將網絡各層的初始權重數據W和偏置數據B寫入第一存儲器。2.在進行深度學習計算時,控制單元通過總線接口,採用DMA(DirectMemoryAccess,直接內存存取)方式從網卡中讀取待處理數據,並將讀取的待處理數據通過第二通信接口存儲到DDR4上。3.控制單元根據深度學習控制邏輯,從DDR4上取一部分待處理數據(比如20幀的語音數據)存到FPGA的數據存儲單元(內部RAM)上,並將這些數據以行主序方式存放。4.進行第1隱層參數計算:從HMC上逐列讀取W矩陣數據和B矩陣存放在數據存儲單元(內部RAM)上,然後依次將W矩陣中列數據與數據存儲單元上存放的數據X的每一行進行乘加,再加上相應的B矩陣中的數據,依次得到第1隱層輸入A的列數據,對輸入A的列數據進行非線性變換,得到第1隱層輸出Y的列數據,並將這些數據按照行主序方式存放到HMC或DDR4上。需要說明的是,輸出Y的列數據的結果是按照列產生的,而要求的輸出Y是以行主序方式存入HMC或DDR4的,所以這裡輸出Y的當前列寫入HMC時並不是連續寫入的,而是跳著寫入,從而滿足行主序存放的要求。5.依次進行其他隱層的計算,直至神經網絡的所有層參數計算完成。6.計算完成後,控制單元將最終計算結果即網絡輸出參數通過總線接口傳送給伺服器。需要注意的是,FPGA適合流水處理,所以在開始計算第2隱層輸入輸出參數的時候,可以開始下一批數據X』和第1隱層的W矩陣的乘加計算。當流水滿載時,各層都在進行計算,只是計算所使用的輸入數據不是同一批而已,從而可以進一步提高計算效率。另外,需要說明的是,本發明實施例中的面向深度學習業務的加速裝置,不僅適用於利用網絡模型進行檢測階段的深度學習計算,而且同樣適用於網絡模型訓練階段的深度學習計算。相應地了,本發明實施例還提供一種面向深度學習業務的加速方法,包括以下步驟:(1)將網絡各層的權重數據和偏置數據預先加載到第一存儲器中;(2)在進行深度學習計算時,可編程邏輯器件從伺服器中讀取待處理數據,並將其存放到第二存儲器中;(3)可編程邏輯器件根據預置的深度學習控制邏輯依次從第一存儲器和第二存儲器中獲取網絡當前層計算所需的數據,計算當前層的輸入參數和輸出參數,並將所述輸出參數存儲到所述第一存儲器或第二存儲器中。(4)計算完成後,可編程邏輯器件將網絡輸出參數通過所述總線接口傳送給伺服器。優選地,所述可編程邏輯器件為FPGA晶片或CPLD晶片;所述第一存儲器為HMC,所述第二存儲器為DDRSDRAM。由於可見,本發明實施例提供的面向深度學習業務的加速裝置及方法,針對深度學習相關業務的需求,採用CPU+可編程邏輯器件的異構形式,並依據深度學習算法的特點設計可編程邏輯晶片與CPU硬體結構以及可編程邏輯器件內部運行機制,使得可編程邏輯器件能將其全部電力消耗在深度學習程序計算中。與現有的單純CPU系統或CPU+GPU系統相比,在同等的投入成本時,本發明方案的CPU+可編程邏輯器件的異構結構能達到更優的性能功耗比。本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。以上對本發明實施例進行了詳細介紹,本文中應用了具體實施方式對本發明進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及裝置;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。當前第1頁1&nbsp2&nbsp3&nbsp

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀