亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于fpga的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu)的制作方法

文檔序號:6635795閱讀:385來源:國知局
基于fpga的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu)的制作方法
【專利摘要】本發(fā)明公開了一種基于FPGA的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu),包括:多個矩陣運(yùn)算加速器;提供通用的存儲空間且支持加速器間片上高速通信的多個共享矩陣緩存;發(fā)送指令,進(jìn)行運(yùn)算調(diào)度及地址計(jì)算的主處理器;檢查指令是否存在占用沖突的指令分發(fā)器;完成數(shù)據(jù)傳輸?shù)闹苯哟嫒】刂破鳎贿M(jìn)行數(shù)據(jù)分發(fā)的仲裁器;提供緩沖的外部存儲器;提供訪問接口的內(nèi)存管理單元。本發(fā)明實(shí)施例的硬件結(jié)構(gòu)可在通用平臺上實(shí)現(xiàn)“矩陣-矩陣”間運(yùn)算,可針對不同的應(yīng)用在主處理器上修改軟件程序,可方便的插入矩陣運(yùn)算加速器結(jié)構(gòu)以實(shí)現(xiàn)對多種矩陣運(yùn)算的支持,具有高度的設(shè)計(jì)靈活性。同時,該設(shè)計(jì)具有比以往在嵌入式處理器上進(jìn)行矩陣運(yùn)算更低能耗且更高計(jì)算性能的優(yōu)勢。
【專利說明】基于FPGA的通用淳點(diǎn)矩陣處理器硬件結(jié)構(gòu)

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)以及電子信息【技術(shù)領(lǐng)域】,特別涉及一種基于FPGA(Field - Programmable Gate Array,現(xiàn)場可編程門陣列)的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu)。

【背景技術(shù)】
[0002] 近些年來,移動工作平臺如無人機(jī),移動機(jī)器人等成為研究的熱點(diǎn)之一。這些設(shè) 備具有很高的靈活性,廣泛應(yīng)用于災(zāi)難救助、地質(zhì)勘測等場景中。在移動工作平臺的應(yīng)用 中需要進(jìn)行大量矩陣運(yùn)算,這對矩陣運(yùn)算的速度及功耗有很高要求。例如,卡爾曼濾波器 是在移動機(jī)器人定位中廣泛使用的方法,它的運(yùn)算過程包含一系列矩陣操作。為了保證機(jī) 器人定位實(shí)時性,這些矩陣運(yùn)算需高速進(jìn)行;同時為了適應(yīng)移動平臺上有限的能源供給,矩 陣操作應(yīng)具有更低的功耗。目前,一些矩陣運(yùn)算庫如MKL(Intel Math Kernel Library, 英特爾數(shù)學(xué)核心函數(shù)庫),cuBLAS(NVIDIACuda Basic Linear Algebra Subroutines,英 偉達(dá)基礎(chǔ)線性代數(shù)子程序庫)可實(shí)現(xiàn)基于CPU(Central Processing Unit,中央處理器) 及GPU(Graphic Processing Unit,圖形處理器)的高性能矩陣運(yùn)算,但其需要復(fù)雜的外 圍設(shè)備支持,同時功耗較高,難以應(yīng)用于移動工作平臺。此外,ASIC(Application Specific Integrated Circuit,專用集成電路)可實(shí)現(xiàn)最好的能源效率,但其需根據(jù)具體的應(yīng)用專門 設(shè)計(jì),使得系統(tǒng)靈活性大大降低。
[0003] 現(xiàn)場可編程門陣列(FPGA)中有大量可并行的處理單元,同時它具有動態(tài)重構(gòu)的 特點(diǎn),在保證高能效同時兼具設(shè)計(jì)靈活性。將FPGA用于移動工作平臺實(shí)現(xiàn)矩陣運(yùn)算是有效 的解決方案。
[0004] 以往的研究工作通常使用向量處理器在FPGA上實(shí)現(xiàn)對矩陣運(yùn)算的支持。向量處 理器是在FPGA上進(jìn)行高效率計(jì)算中一種廣為研究的技術(shù)。向量處理器通過利用一組通用 算數(shù)邏輯單元(ALU)對向量中多個元素進(jìn)行并行計(jì)算以實(shí)現(xiàn)加速。將矩陣分解為一維向量 就可以用向量處理器實(shí)現(xiàn)矩陣運(yùn)算。然而由于矩陣中的數(shù)據(jù)訪問模式具有二維方向性問 題--例如,當(dāng)進(jìn)行矩陣乘法時,被操作的矩陣有沿行分解和沿列分解兩種可能,在這種情 況下該設(shè)計(jì)的訪存效率較低。此外,該方法中單個矩陣操作將被分解為對若干行列進(jìn)行操 作的多條指令,這對主處理器的性能提出挑戰(zhàn)。
[0005] 為了實(shí)現(xiàn)更高性能的矩陣運(yùn)算,針對特定的矩陣運(yùn)算而專門設(shè)計(jì)的矩陣運(yùn)算加速 器是更好的選擇。與向量處理器不同,這些加速器將每種矩陣運(yùn)算的操作用專有的硬件結(jié) 構(gòu)實(shí)現(xiàn),且引入了專門的緩存設(shè)計(jì)以支持矩陣中的多種數(shù)據(jù)訪問模式。這些加速器可以直 接進(jìn)行矩陣-矩陣間的運(yùn)算(三級BLAS庫中所包含的運(yùn)算類型)。相關(guān)技術(shù)中有一些工作 針對特定的矩陣運(yùn)算設(shè)計(jì)加速器,如矩陣乘法、稀疏矩陣分解等,但尚未有工作提出將加速 器進(jìn)行整合,在FPGA上構(gòu)建一個高性能、低能耗的通用浮點(diǎn)矩陣計(jì)算平臺。對加速器進(jìn)行 整合構(gòu)成通用矩陣計(jì)算平臺在技術(shù)上面臨以下兩類問題。
[0006] 其一是對加速器整合時面臨的訪存模式整合的問題。一種直觀方式可以考慮通 過內(nèi)存管理單元的多個接口將加速器直接整合,每次計(jì)算從外部存儲器讀矩陣,執(zhí)行操作 后結(jié)果需寫回到外部存儲器中,這使得加速器之間不能進(jìn)行片上通信而只能通過外部存儲 器進(jìn)行通信,而對外存的讀寫帶寬將成為計(jì)算性能提升的瓶頸。以一元矩陣運(yùn)算為例,B = OP1(A) ;C = opjB) ;D = Op3(C)。A是輸入矩陣,D是輸出矩陣,B和C是臨時矩陣。在直接 整合方法中,B和C需在計(jì)算完成后首先被寫回到外部存儲中,再讀入緩存以進(jìn)行下一步運(yùn) 算。最少執(zhí)行時間的計(jì)算公式為:

【權(quán)利要求】
1. 一種基于FPGA的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu),其特征在于,包括: 多個矩陣運(yùn)算加速器,所述多個矩陣運(yùn)算加速器用于支持三級BLAS庫中包含的"矩 陣-矩陣"運(yùn)算; 多個共享矩陣緩存,所述多個共享矩陣緩存用于為所述多個矩陣運(yùn)算加速器提供通用 的存儲空間且支持所述多個矩陣運(yùn)算加速器間片上高速通信; 主處理器,所述主處理器用于發(fā)送指令,對存儲在外存上的大規(guī)模矩陣進(jìn)行分層矩陣 運(yùn)算的調(diào)度及地址計(jì)算; 指令分發(fā)器,所述指令分發(fā)器用于檢查指令對加速器是否存在占用沖突; 直接存取控制器,所述直接存取控制器完成外部存儲器或主處理器與共享矩陣緩存間 的數(shù)據(jù)傳輸; 仲裁器,所述仲裁器用于在多個矩陣運(yùn)算加速器及其所需的數(shù)據(jù)訪問模式的緩存端口 間進(jìn)行數(shù)據(jù)分發(fā); 外部存儲器,所述外部存儲器用于為大規(guī)模矩陣提供存儲空間,為對加速器發(fā)生占用 沖突的指令提供緩沖; 內(nèi)存管理單元,所述內(nèi)存管理單元為多個模塊提供外部存儲器訪問接口。
2. 如權(quán)利要求1所述的基于FPGA的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu),其特征在于,所述 多個共享矩陣緩存為所述多個矩陣運(yùn)算加速器提供通用的矩陣存儲空間,所述多個共享矩 陣緩存支持多種二維數(shù)據(jù)訪問模式,以替代所述多個矩陣運(yùn)算加速器中的獨(dú)立緩存。
3. 如權(quán)利要求1所述的基于FPGA的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu),其特征在于,所述 多個矩陣運(yùn)算加速器用于實(shí)現(xiàn)矩陣初始化、數(shù)組操作和矩陣乘法三類操作,并且涵蓋了所 述三級BLAS庫中所包含的運(yùn)算類型。
4. 如權(quán)利要求1所述的基于FPGA的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu),其特征在于,所述 主處理器與所述多個矩陣運(yùn)算加速器協(xié)同工作,采用分層的矩陣運(yùn)算機(jī)制以支持對存儲在 外部存儲器上的大規(guī)模矩陣進(jìn)行運(yùn)算,其中,所述主處理器進(jìn)行高層次的運(yùn)算調(diào)度,所述多 個矩陣運(yùn)算加速器對緩存中的數(shù)據(jù)進(jìn)行底層運(yùn)算。
5. 如權(quán)利要求1所述的基于FPGA的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu),其特征在于,通過 地址轉(zhuǎn)換器將二維矩陣空間投影到多個一維塊RAM組成的存儲空間,所述二維矩陣被分割 成為多個窗,每個窗中的全部元素被存儲在不同塊RAM的相同地址中,其中,窗口的尺寸為 HwinX Wwin,二維矩陣的寬度是Wmat,從二維矩陣的位置坐標(biāo)到其在塊RAM中的存儲地址轉(zhuǎn)換 公式為:
其中,ID表示該數(shù)據(jù)所存儲的塊RAM的編號,ADDR表示在編號為ID的塊RAM中的存儲 地址。
6. 如權(quán)利要求1所述的基于FPGA的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu),其特征在于,所述 外部存儲器中的大規(guī)模矩陣被分割為多個可以存儲在緩存中的塊矩陣,所述主處理器依照 矩陣運(yùn)算規(guī)則發(fā)送指令將各個塊矩陣讀入緩存,所述矩陣運(yùn)算加速器對緩存中的數(shù)據(jù)進(jìn)行 計(jì)算,所述主處理器將計(jì)算結(jié)果寫回外部存儲器中。
7. 如權(quán)利要求1所述的基于FPGA的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu),其特征在于,采用 乒乓緩存策略提高大規(guī)模矩陣分層乘法的運(yùn)算速度,其中,所述多個共享矩陣緩存中的共 享矩陣緩存被劃分為六個區(qū)域,三個Ping緩存區(qū)存儲的矩陣用于乘法操作,與此同時三個 pong緩存區(qū)可用于累加及數(shù)據(jù)傳輸操作。
8. 如權(quán)利要求1所述的基于FPGA的通用浮點(diǎn)矩陣處理器硬件結(jié)構(gòu),其特征在于,采用 異步指令執(zhí)行機(jī)制以降低所述主處理器的工作量,其中,所述主處理器可發(fā)送多條指令后 進(jìn)行其他必要的計(jì)算任務(wù),而所述指令分發(fā)器對指令的沖突關(guān)系進(jìn)行檢查及調(diào)度。
【文檔編號】G06F15/78GK104391820SQ201410690022
【公開日】2015年3月4日 申請日期:2014年11月25日 優(yōu)先權(quán)日:2014年11月25日
【發(fā)明者】谷夢媛, 王文強(qiáng), 汪玉, 郭開元, 楊華中 申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1