高效能異構(gòu)流水線系統(tǒng)的設(shè)計(jì)與優(yōu)化
發(fā)布時(shí)間:2021-07-27 14:52
隨著新興智能計(jì)算領(lǐng)域的高速發(fā)展,包括計(jì)算視覺、語(yǔ)音識(shí)別、自然語(yǔ)言處理等領(lǐng)域,不僅應(yīng)用本身的復(fù)雜度不斷增加,而且對(duì)系統(tǒng)的計(jì)算能效,即單位能耗的計(jì)算性能,要求也越來(lái)越高。在這樣的背景下,如何針對(duì)人工智能應(yīng)用設(shè)計(jì)出高效能的實(shí)時(shí)并行系統(tǒng)已經(jīng)成為了工業(yè)界和研究界高度關(guān)注的重點(diǎn)領(lǐng)域。異構(gòu)流水線架構(gòu)成為實(shí)現(xiàn)該類系統(tǒng)的一個(gè)有前途的解決方案。以深度神經(jīng)網(wǎng)絡(luò)為例,隨著網(wǎng)絡(luò)結(jié)構(gòu)的不斷加深,流水線設(shè)計(jì)已成為提升系統(tǒng)性能的重要手段;同時(shí),由于應(yīng)用子結(jié)構(gòu)間具有顯著性差異,為了降低能耗,異構(gòu)平臺(tái)能夠?yàn)閼?yīng)用量身定制能耗最低的解決方案。雖然目前已有大量工作探索軟件層的應(yīng)用結(jié)構(gòu)搜索空間,以及硬件層的異構(gòu)加速器設(shè)計(jì)空間,但是獨(dú)立地探索這兩個(gè)空間并不能保證最終合成的完整系統(tǒng)達(dá)到最高能效。為此,本文致力于軟硬件協(xié)同設(shè)計(jì),針對(duì)不同應(yīng)用與不同硬件平臺(tái)的特性,開展異構(gòu)流水線系統(tǒng)的設(shè)計(jì)與優(yōu)化研究。相較于已有的科研工作,本文將探索各類異構(gòu)平臺(tái),包括基于現(xiàn)場(chǎng)可編程門陣列(FPGA)集群系統(tǒng)、基于通用計(jì)算處理器的多核片上系統(tǒng)、以及基于異構(gòu)通信的大規(guī)模分布式系統(tǒng),全面地開展軟硬件系統(tǒng)的協(xié)同設(shè)計(jì)與優(yōu)化工作。通過設(shè)計(jì)高效最優(yōu)解算法,充分挖掘軟件內(nèi)...
【文章來(lái)源】:重慶大學(xué)重慶市 211工程院校 985工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:132 頁(yè)
【學(xué)位級(jí)別】:博士
【部分圖文】:
展示了軟硬件協(xié)同設(shè)計(jì)的整體框架,包括上層的軟件層、中間層的協(xié)同設(shè)計(jì)層與下層的硬件層
文6在這個(gè)例子中,任務(wù)之間的依賴關(guān)系用一個(gè)比較簡(jiǎn)單的有向無(wú)環(huán)圖(DirectedAcyclicGraph,DAG)表示,如圖1.3(a)所示。流水線階段(PipelineStage)劃分實(shí)際上就是在任務(wù)圖的依賴邊上如何放置緩沖的問題,兩個(gè)緩沖之間的任務(wù)圖子集是一個(gè)流水線階段。在流水線執(zhí)行時(shí),流水線階段緩沖(PipelineStageBuffer)為多個(gè)批次的任務(wù)在流水線中的交疊執(zhí)行傳遞正確的任務(wù)數(shù)據(jù)。圖1.3(b)顯示了每個(gè)任務(wù)分別在兩種異構(gòu)處理單元上的執(zhí)行時(shí)間和開銷。假設(shè)流水線周期時(shí)間限制是9個(gè)單位時(shí)間,那么我們可以有多個(gè)不同的流水線劃分方案,圖1.4顯示了四種不同的劃分方案,以及把各個(gè)流水線階段分配到兩種不同的處理單元執(zhí)行的流水線周期時(shí)間和開銷。前三個(gè)方案把圖1.3(a)中的任務(wù)圖劃分為四個(gè)流水線階段,第四種方案只劃分了三個(gè)階段。流水線周期時(shí)間是由最慢的階段所決定的,因此,劃分方案1的周期時(shí)間超過了時(shí)間限制條件,是不可行的解;假設(shè)兩種處理單元的數(shù)量足夠多,方案2的周期時(shí)間可以滿足時(shí)間性能要求,此時(shí)系統(tǒng)開銷為110;方案3的周期時(shí)間同樣可以滿足要求,系統(tǒng)開銷則降低到100;而方案4只用了三個(gè)流水線階段,就可以達(dá)到性能要求,并且系統(tǒng)整體開銷最校由于流水線階段較少,數(shù)據(jù)緩沖的額外開銷也校由于要同時(shí)考慮緩沖放置和異構(gòu)資源分配兩個(gè)問題,異構(gòu)流水線劃分方案的搜索空間巨大,假設(shè)任務(wù)圖有100個(gè)任務(wù)節(jié)點(diǎn)和60條邊,任意一條邊都可以放置一個(gè)緩沖,每個(gè)任務(wù)有3個(gè)處理單元可以選擇,那么,設(shè)計(jì)空間里就有3100×260≈1065個(gè)可能的解決方案,如何在這么大的搜索空間內(nèi)快速有效地找到最優(yōu)或近似最優(yōu)的方案是我們需要面對(duì)的挑戰(zhàn)。在本文中,我們將對(duì)流水線劃分、異構(gòu)資源圖1.4不同的流水線劃分方案Fig.1.4Differentstrategiesofpipelinepar
1緒論7分配、任務(wù)調(diào)度等一系列優(yōu)化問題的本質(zhì)特性、復(fù)雜度、最優(yōu)算法和近似最優(yōu)解算法做深入的基礎(chǔ)研究和論證,建立理論框架,研發(fā)出一套高效的異構(gòu)流水線系統(tǒng)優(yōu)化技術(shù)。接下來(lái),我們將在1.2.2小節(jié)與1.2.3小節(jié)介紹同步異構(gòu)流水線系統(tǒng)的研究現(xiàn)狀,并在1.2.4小節(jié)介紹異步異構(gòu)流水線系統(tǒng)的研究現(xiàn)狀。1.2.2神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索與FPGA硬件加速器設(shè)計(jì)的研究現(xiàn)狀分析近年來(lái),隨著深度神經(jīng)網(wǎng)絡(luò)在各種人工智能應(yīng)用中取得長(zhǎng)足突破,針對(duì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與硬件加速器設(shè)計(jì)已然成為炙手可熱的研究話題。圖1.5分別展示了在軟件層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(NeuralArchitectureSearch)、硬件層的基于FPGA神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)(FPGA-basedAccelerator)、以及軟硬件協(xié)同設(shè)計(jì)層的硬件感知神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(Hardware-awareNAS)的發(fā)展歷程。圖中,x軸下方表示硬件層設(shè)計(jì)加速器的工作,x軸上方最上層為軟件層,包括了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)探索的工作,中間層為軟硬件協(xié)同設(shè)計(jì)層,包括硬件感知的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)探索。從圖中可以清晰看到,硬件層的設(shè)計(jì)從2015年開始,由加州大學(xué)洛杉磯分校的JasonCong團(tuán)隊(duì)在2015提出使用FPGA實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)加速器[22]。其后,在2017年,紐約州立大學(xué)石溪分校Shen等人發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)的計(jì)算不均勻,提出將一塊FPGA被劃分成多個(gè)運(yùn)算塊,并根據(jù)運(yùn)算量分配硬件資源以提升資源使用率[20];每個(gè)流水線階段被映射到FPGA上的一個(gè)運(yùn)算塊;多個(gè)運(yùn)算塊以流水線的方式執(zhí)行,以提高神經(jīng)網(wǎng)絡(luò)在測(cè)試階段的吞吐量。2018年,Zhang等人提出了DNNBuilder,自動(dòng)在FPGA上生成一個(gè)給定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[21]。圖1.5神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索與基于FPGA的神經(jīng)網(wǎng)絡(luò)加速器發(fā)展Fig.1.5DevelopmentofNeuralArchitectureSeachandFPGAacceleratordesigns
本文編號(hào):3306001
【文章來(lái)源】:重慶大學(xué)重慶市 211工程院校 985工程院校 教育部直屬院校
【文章頁(yè)數(shù)】:132 頁(yè)
【學(xué)位級(jí)別】:博士
【部分圖文】:
展示了軟硬件協(xié)同設(shè)計(jì)的整體框架,包括上層的軟件層、中間層的協(xié)同設(shè)計(jì)層與下層的硬件層
文6在這個(gè)例子中,任務(wù)之間的依賴關(guān)系用一個(gè)比較簡(jiǎn)單的有向無(wú)環(huán)圖(DirectedAcyclicGraph,DAG)表示,如圖1.3(a)所示。流水線階段(PipelineStage)劃分實(shí)際上就是在任務(wù)圖的依賴邊上如何放置緩沖的問題,兩個(gè)緩沖之間的任務(wù)圖子集是一個(gè)流水線階段。在流水線執(zhí)行時(shí),流水線階段緩沖(PipelineStageBuffer)為多個(gè)批次的任務(wù)在流水線中的交疊執(zhí)行傳遞正確的任務(wù)數(shù)據(jù)。圖1.3(b)顯示了每個(gè)任務(wù)分別在兩種異構(gòu)處理單元上的執(zhí)行時(shí)間和開銷。假設(shè)流水線周期時(shí)間限制是9個(gè)單位時(shí)間,那么我們可以有多個(gè)不同的流水線劃分方案,圖1.4顯示了四種不同的劃分方案,以及把各個(gè)流水線階段分配到兩種不同的處理單元執(zhí)行的流水線周期時(shí)間和開銷。前三個(gè)方案把圖1.3(a)中的任務(wù)圖劃分為四個(gè)流水線階段,第四種方案只劃分了三個(gè)階段。流水線周期時(shí)間是由最慢的階段所決定的,因此,劃分方案1的周期時(shí)間超過了時(shí)間限制條件,是不可行的解;假設(shè)兩種處理單元的數(shù)量足夠多,方案2的周期時(shí)間可以滿足時(shí)間性能要求,此時(shí)系統(tǒng)開銷為110;方案3的周期時(shí)間同樣可以滿足要求,系統(tǒng)開銷則降低到100;而方案4只用了三個(gè)流水線階段,就可以達(dá)到性能要求,并且系統(tǒng)整體開銷最校由于流水線階段較少,數(shù)據(jù)緩沖的額外開銷也校由于要同時(shí)考慮緩沖放置和異構(gòu)資源分配兩個(gè)問題,異構(gòu)流水線劃分方案的搜索空間巨大,假設(shè)任務(wù)圖有100個(gè)任務(wù)節(jié)點(diǎn)和60條邊,任意一條邊都可以放置一個(gè)緩沖,每個(gè)任務(wù)有3個(gè)處理單元可以選擇,那么,設(shè)計(jì)空間里就有3100×260≈1065個(gè)可能的解決方案,如何在這么大的搜索空間內(nèi)快速有效地找到最優(yōu)或近似最優(yōu)的方案是我們需要面對(duì)的挑戰(zhàn)。在本文中,我們將對(duì)流水線劃分、異構(gòu)資源圖1.4不同的流水線劃分方案Fig.1.4Differentstrategiesofpipelinepar
1緒論7分配、任務(wù)調(diào)度等一系列優(yōu)化問題的本質(zhì)特性、復(fù)雜度、最優(yōu)算法和近似最優(yōu)解算法做深入的基礎(chǔ)研究和論證,建立理論框架,研發(fā)出一套高效的異構(gòu)流水線系統(tǒng)優(yōu)化技術(shù)。接下來(lái),我們將在1.2.2小節(jié)與1.2.3小節(jié)介紹同步異構(gòu)流水線系統(tǒng)的研究現(xiàn)狀,并在1.2.4小節(jié)介紹異步異構(gòu)流水線系統(tǒng)的研究現(xiàn)狀。1.2.2神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索與FPGA硬件加速器設(shè)計(jì)的研究現(xiàn)狀分析近年來(lái),隨著深度神經(jīng)網(wǎng)絡(luò)在各種人工智能應(yīng)用中取得長(zhǎng)足突破,針對(duì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與硬件加速器設(shè)計(jì)已然成為炙手可熱的研究話題。圖1.5分別展示了在軟件層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(NeuralArchitectureSearch)、硬件層的基于FPGA神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)(FPGA-basedAccelerator)、以及軟硬件協(xié)同設(shè)計(jì)層的硬件感知神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(Hardware-awareNAS)的發(fā)展歷程。圖中,x軸下方表示硬件層設(shè)計(jì)加速器的工作,x軸上方最上層為軟件層,包括了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)探索的工作,中間層為軟硬件協(xié)同設(shè)計(jì)層,包括硬件感知的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)探索。從圖中可以清晰看到,硬件層的設(shè)計(jì)從2015年開始,由加州大學(xué)洛杉磯分校的JasonCong團(tuán)隊(duì)在2015提出使用FPGA實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)加速器[22]。其后,在2017年,紐約州立大學(xué)石溪分校Shen等人發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)的計(jì)算不均勻,提出將一塊FPGA被劃分成多個(gè)運(yùn)算塊,并根據(jù)運(yùn)算量分配硬件資源以提升資源使用率[20];每個(gè)流水線階段被映射到FPGA上的一個(gè)運(yùn)算塊;多個(gè)運(yùn)算塊以流水線的方式執(zhí)行,以提高神經(jīng)網(wǎng)絡(luò)在測(cè)試階段的吞吐量。2018年,Zhang等人提出了DNNBuilder,自動(dòng)在FPGA上生成一個(gè)給定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[21]。圖1.5神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索與基于FPGA的神經(jīng)網(wǎng)絡(luò)加速器發(fā)展Fig.1.5DevelopmentofNeuralArchitectureSeachandFPGAacceleratordesigns
本文編號(hào):3306001
本文鏈接:http://sikaile.net/shoufeilunwen/xxkjbs/3306001.html
最近更新
教材專著