午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法

文檔序號(hào):39525833發(fā)布日期:2024-09-27 17:01閱讀:35來源:國(guó)知局
基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法

本發(fā)明涉及高級(jí)可編程邏輯編譯,尤其涉及基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法。


背景技術(shù):

1、隨著計(jì)算密集型應(yīng)用的迅猛發(fā)展,現(xiàn)場(chǎng)可編程邏輯門陣列(fpga)因其高處理速度和資源能效比而備受矚目。然而,fpga的編程復(fù)雜性極大地阻礙了其廣泛應(yīng)用。盡管高層次綜合(hls)技術(shù)為用高級(jí)語言(如c/c++)編寫的算法轉(zhuǎn)化為專用硬件加速器提供了途徑,但所生成加速器的性能高度依賴于用戶的手動(dòng)優(yōu)化能力,包括源代碼的重構(gòu)以消除數(shù)據(jù)依賴以及選擇合適的hls編譯指令。這種對(duì)硬件知識(shí)的依賴和性能驗(yàn)證的迭代過程,增加了編程和優(yōu)化的難度。

2、目前,編譯技術(shù)的進(jìn)步在一定程度上緩解了不同計(jì)算平臺(tái)的編程和優(yōu)化挑戰(zhàn)。針對(duì)非fpga后端(如cpu、gpu和領(lǐng)域?qū)S眉铀倨鱠sa),已有編譯框架實(shí)現(xiàn)了算法與調(diào)度的解耦,從而允許開發(fā)者專注于算法定義,而由編譯器自動(dòng)執(zhí)行優(yōu)化任務(wù)。然而,這些框架主要針對(duì)特定應(yīng)用場(chǎng)景(如圖像處理或深度學(xué)習(xí)),缺乏通用性,難以直接應(yīng)用于fpga后端。

3、對(duì)于fpga后端,雖然已有編譯框架支持生成高效的空間架構(gòu),但這些框架往往依賴于單一的循環(huán)級(jí)別中間表示(ir)進(jìn)行代碼優(yōu)化,這在處理復(fù)雜應(yīng)用時(shí)可能顯得力不從心。此外,現(xiàn)有框架在數(shù)據(jù)依賴分析和循環(huán)變換等關(guān)鍵編譯優(yōu)化技術(shù)上存在不足,限制了其在復(fù)雜應(yīng)用中的性能提升。

4、因此,當(dāng)前的編譯框架在支持fpga加速器方面存在顯著不足。非fpga后端的編譯框架難以針對(duì)fpga生成高效的加速器,而面向fpga后端的編譯框架又缺乏充分的數(shù)據(jù)依賴分析和循環(huán)變換支持。同時(shí),基于單層中間表示設(shè)計(jì)的編譯框架可擴(kuò)展性有限,難以應(yīng)對(duì)不同粒度的編譯優(yōu)化需求,增加了編譯器的開發(fā)和調(diào)試難度。這些問題迫切需要一種新型的編譯框架來解決,以實(shí)現(xiàn)對(duì)fpga加速器的有效優(yōu)化和高效生成。


技術(shù)實(shí)現(xiàn)思路

1、有鑒于此,本發(fā)明提出基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,以解決現(xiàn)有技術(shù)中存在的fpga編程難度大且優(yōu)化不足的問題。

2、本發(fā)明具體的技術(shù)方案如下:

3、基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,包括:

4、步驟1,接收用戶輸入的算法,并通過編譯器的編譯流程,將該輸入算法劃分為三層不同抽象層次的中間表示,包括依賴圖中間表示、多面體中間表示和帶有硬件描述語言hls原語屬性的mlir仿射方言中間表示;

5、步驟2,在依賴圖中間表示階段,構(gòu)建包含計(jì)算塊間粗粒度數(shù)據(jù)依賴的數(shù)據(jù)依賴圖,通過pom領(lǐng)域特定語言dsl明確表達(dá)數(shù)據(jù)讀寫操作的生產(chǎn)者消費(fèi)者關(guān)系,并提取和分析數(shù)據(jù)讀寫操作;

6、步驟3,將依賴圖中間表示轉(zhuǎn)換為多面體中間表示,包括:從依賴圖中間表示的每個(gè)節(jié)點(diǎn)中提取多面體語義,并用整數(shù)集和映射高效表示;根據(jù)用戶在pom?dsl中指定的調(diào)度策略執(zhí)行相應(yīng)的循環(huán)變換,同時(shí)確保計(jì)算執(zhí)行的正確順序;構(gòu)造包含if節(jié)點(diǎn)、for節(jié)點(diǎn)、block節(jié)點(diǎn)和用戶節(jié)點(diǎn)的多面體抽象語法樹ast;

7、步驟4,將多面體中間表示進(jìn)一步轉(zhuǎn)換為帶有hls原語屬性的mlir仿射方言中間表示,以執(zhí)行硬件優(yōu)化,包括:將多面體ast中不同類型的節(jié)點(diǎn)映射到mlir仿射方言表示的相應(yīng)操作,以捕獲循環(huán)屬性;解析pom?dsl中描述的計(jì)算語句和數(shù)據(jù)訪問模式,并將其轉(zhuǎn)換為正確的mlir仿射方言表示;在mlir仿射方言上執(zhí)行基于hls屬性的硬件優(yōu)化,并生成包含hls原語的充分優(yōu)化中間表示。

8、具體地,步驟3中,多面體語義包括迭代域和數(shù)據(jù)讀寫信息。

9、具體地,步驟3中,用戶節(jié)點(diǎn)附加計(jì)算語句的關(guān)鍵信息。

10、具體地,步驟4中,循環(huán)屬性包括循環(huán)下界、上界和迭代間隔。

11、具體地,編譯方法還包括:步驟5,實(shí)施自動(dòng)設(shè)計(jì)空間探索dse,包括:依賴感知的代碼轉(zhuǎn)換,通過遍歷數(shù)據(jù)依賴圖,應(yīng)用循環(huán)變換以減輕或消除循環(huán)依賴,并迭代地重新檢查循環(huán)依賴直至滿足條件;瓶頸導(dǎo)向的代碼優(yōu)化,通過評(píng)估不同循環(huán)切分策略和hls硬件優(yōu)化組合,優(yōu)先考慮關(guān)鍵路徑中瓶頸節(jié)點(diǎn)的性能優(yōu)化,并逐步提高并行度,直至滿足退出機(jī)制。

12、具體地,編譯方法還包括:步驟6,將優(yōu)化后的mlir仿射方言中間表示發(fā)送至編譯器后端,生成可綜合的hls?c代碼,其中所有的hls屬性均轉(zhuǎn)換為對(duì)應(yīng)的hls原語,以供fpga加速器使用。

13、具體地,步驟2中,所述依賴圖中間表示中,粗粒度依賴分析通過提取和分析數(shù)據(jù)讀寫操作,并使用依賴映射保留它們,以捕獲計(jì)算塊之間的粗粒度數(shù)據(jù)依賴性,而細(xì)粒度依賴分析通過分析循環(huán)內(nèi)相鄰兩次迭代間的依賴關(guān)系,以識(shí)別循環(huán)攜帶依賴并指導(dǎo)更低級(jí)別的代碼轉(zhuǎn)換和優(yōu)化。

14、具體地,細(xì)粒度依賴分析通過計(jì)算循環(huán)的距離和方向向量來分析依賴性,并將相關(guān)信息存儲(chǔ)為節(jié)點(diǎn)屬性,用于指導(dǎo)循環(huán)變換以拉遠(yuǎn)依賴距離,并作為給用戶的提示以指導(dǎo)設(shè)置hlsdependence的原語。

15、具體地,步驟3中,根據(jù)用戶在pom?dsl中指定的調(diào)度策略執(zhí)行循環(huán)變換時(shí),還涉及將攜帶數(shù)據(jù)依賴的內(nèi)部循環(huán)與外部循環(huán)進(jìn)行交換以拉遠(yuǎn)依賴距離,從而提高數(shù)據(jù)并行性。

16、具體地,構(gòu)建包含計(jì)算塊間粗粒度數(shù)據(jù)依賴的數(shù)據(jù)依賴圖時(shí),采用基于深度優(yōu)先搜索dfs的方法遍歷圖并收集所有的數(shù)據(jù)路徑,作為后續(xù)設(shè)計(jì)空間探索的關(guān)鍵信息。

17、本發(fā)明的有益效果在于:

18、(1)提出了pom,pom的核心在于其解耦的領(lǐng)域?qū)S谜Z言,這種語言能夠高效地描述函數(shù)、循環(huán)和數(shù)組等復(fù)雜結(jié)構(gòu)。此外,pom還提供了一系列靈活的調(diào)度原語,這些原語使得在保持高性能的同時(shí),顯著減少了代碼行數(shù),提高了編程的效率和可讀性;

19、(2)通過引入三層中間表示,構(gòu)建了一個(gè)統(tǒng)一的編譯框架pom。這一框架使得在不同抽象層次上執(zhí)行各種優(yōu)化成為可能,從而實(shí)現(xiàn)了高度的可擴(kuò)展性。三層中間表示的設(shè)計(jì)不僅簡(jiǎn)化了實(shí)現(xiàn)和調(diào)試過程,還降低了支持各種優(yōu)化方法的工作量;

20、(3)注重生成高質(zhì)量的加速器設(shè)計(jì)。它提供了豐富的優(yōu)化方法,并在合適的層級(jí)上執(zhí)行面向fpga的調(diào)度和優(yōu)化。這些優(yōu)化方法減輕了緊密的循環(huán)依賴,提高了代碼并行性,從而實(shí)現(xiàn)了整體性能的提升。生成的加速器設(shè)計(jì)不僅性能卓越,而且穩(wěn)定性和可靠性也得到了保證;

21、(4)集成了一個(gè)設(shè)計(jì)空間探索(dse)引擎,能夠自動(dòng)搜索高性能的調(diào)度方案,大大提高了編譯效率。同時(shí),pom還支持用戶自定義調(diào)度策略,為不同應(yīng)用場(chǎng)景提供了靈活的解決方案。



技術(shù)特征:

1.基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,其特征在于,包括:

2.如權(quán)利要求1所述的基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,其特征在于,所述步驟3中,多面體語義包括迭代域和數(shù)據(jù)讀寫信息。

3.如權(quán)利要求1所述的基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,其特征在于,所述步驟3中,用戶節(jié)點(diǎn)附加計(jì)算語句的關(guān)鍵信息。

4.如權(quán)利要求1所述的基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,其特征在于,所述步驟4中,循環(huán)屬性包括循環(huán)下界、上界和迭代間隔。

5.如權(quán)利要求1所述的基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,其特征在于,所述編譯方法還包括:步驟5,實(shí)施自動(dòng)設(shè)計(jì)空間探索dse,包括:依賴感知的代碼轉(zhuǎn)換,通過遍歷數(shù)據(jù)依賴圖,應(yīng)用循環(huán)變換以減輕或消除循環(huán)依賴,并迭代地重新檢查循環(huán)依賴直至滿足條件;瓶頸導(dǎo)向的代碼優(yōu)化,通過評(píng)估不同循環(huán)切分策略和hls硬件優(yōu)化組合,優(yōu)先考慮關(guān)鍵路徑中瓶頸節(jié)點(diǎn)的性能優(yōu)化,并逐步提高并行度,直至滿足退出機(jī)制。

6.如權(quán)利要求5所述的基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,其特征在于,所述編譯方法還包括:步驟6,將優(yōu)化后的mlir仿射方言中間表示發(fā)送至編譯器后端,生成可綜合的hls?c代碼,其中所有的hls屬性均轉(zhuǎn)換為對(duì)應(yīng)的hls原語,以供fpga加速器使用。

7.如權(quán)利要求1所述的基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,其特征在于,所述步驟2中,所述依賴圖中間表示中,粗粒度依賴分析通過提取和分析數(shù)據(jù)讀寫操作,并使用依賴映射保留它們,以捕獲計(jì)算塊之間的粗粒度數(shù)據(jù)依賴性,而細(xì)粒度依賴分析通過分析循環(huán)內(nèi)相鄰兩次迭代間的依賴關(guān)系,以識(shí)別循環(huán)攜帶依賴并指導(dǎo)更低級(jí)別的代碼轉(zhuǎn)換和優(yōu)化。

8.如權(quán)利要求1所述的基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,其特征在于,所述細(xì)粒度依賴分析通過計(jì)算循環(huán)的距離和方向向量來分析依賴性,并將相關(guān)信息存儲(chǔ)為節(jié)點(diǎn)屬性,用于指導(dǎo)循環(huán)變換以拉遠(yuǎn)依賴距離,并作為給用戶的提示以指導(dǎo)設(shè)置hlsdependence的原語。

9.如權(quán)利要求1所述的基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,其特征在于,所述步驟3中,根據(jù)用戶在pom?dsl中指定的調(diào)度策略執(zhí)行循環(huán)變換時(shí),還涉及將攜帶數(shù)據(jù)依賴的內(nèi)部循環(huán)與外部循環(huán)進(jìn)行交換以拉遠(yuǎn)依賴距離,從而提高數(shù)據(jù)并行性。

10.如權(quán)利要求1所述的基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,其特征在于,構(gòu)建包含計(jì)算塊間粗粒度數(shù)據(jù)依賴的數(shù)據(jù)依賴圖時(shí),采用基于深度優(yōu)先搜索dfs的方法遍歷圖并收集所有的數(shù)據(jù)路徑,作為后續(xù)設(shè)計(jì)空間探索的關(guān)鍵信息。


技術(shù)總結(jié)
本發(fā)明公開了基于現(xiàn)場(chǎng)可編程邏輯門陣列的多層中間表示的編譯方法,該方法包括:接收用戶輸入的算法,并通過編譯器的編譯流程,將該輸入算法劃分為三層不同抽象層次的中間表示,包括依賴圖中間表示、多面體中間表示和帶有硬件描述語言HLS原語屬性的MLIR仿射方言中間表示;實(shí)施自動(dòng)設(shè)計(jì)空間探索DSE;將優(yōu)化后的MLIR仿射方言中間表示發(fā)送至編譯器后端,生成可綜合的HLS?C代碼,其中所有的HLS屬性均轉(zhuǎn)換為對(duì)應(yīng)的HLS原語,以供FPGA加速器使用。該方法旨在解決現(xiàn)有編譯框架在FPGA編程中的不足,通過引入多層中間表示技術(shù),實(shí)現(xiàn)了編譯過程的優(yōu)化和簡(jiǎn)化,從而降低了FPGA編程的難度。

技術(shù)研發(fā)人員:趙杰茹,張煒創(chuàng),過敏意
受保護(hù)的技術(shù)使用者:上海交通大學(xué)
技術(shù)研發(fā)日:
技術(shù)公布日:2024/9/26
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1