System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及芯片編譯,特別是指一種基于預先調度的粗粒度可重構芯片映射方法及裝置。
技術介紹
1、隨著近年來人工智能、大語言模型、大數據、云計算等技術的發展,不同的計算任務對于硬件的要求變得更高。這使得我們需要更大規模、更高性能、更高能效的硬件處理器。以粗粒度可重構處理器架構(coarse-grained?reconfigurable?architectures,cgra)為代表的可重構處理器在保持擁有足夠配置靈活性的同時,擁有較高的能量效率,結合了通用處理器的高靈活性和專用集成電路高性能的雙重優勢。
2、為了發揮cgra在性能、能效和靈活性上的優勢,一個重要任務就是求解編譯過程中的循環映射問題。循環在計算和存儲密集型應用中時間占比較大,適合采用cgra等空間并行架構進行加速。cgra編譯器通常會耗費大量時間求解循環映射問題。而當循環體較大,生成的數據流圖擁有較多的節點和邊時,求解循環映射這樣的復雜問題就會帶來巨大的時間開銷。因此,加速編譯和循環映射的求解極為重要。
3、然而,隨著數據流圖規模與復雜性的增長,現有循環映射加速方法主要基于傳統搜索方法和整數線性規劃方法直接求解復雜的映射問題,需要耗費較大的時間代價,容易導致無法求得循環映射結果或程序在粗粒度可重構芯片上的執行性能較低。
技術實現思路
1、為了解決現有技術中隨著數據流圖規模與復雜性的增長,現有循環映射加速方法主要基于傳統搜索方法和整數線性規劃方法直接求解復雜的映射問題,需要耗費較大的時間代價,容易
2、一方面,提供了一種基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述方法包括:
3、s1、將預設輸入程序輸入至編譯器前端,輸出預設輸入程序中源代碼的中間表示;
4、s2、基于中間表示,構建數據流圖結構;
5、s3、獲取粗粒度可重構芯片結構信息;根據數據流圖結構和所述粗粒度可重構芯片結構信息,對數據流圖中的每個操作進行預先調度,獲得操作的預先分配時間周期;
6、s4、根據預先分配時間周期,基于數據流圖結構在粗粒度可重構芯片上進行映射,使用啟發式搜索法獲得映射方案;
7、s5、基于所述映射方案,生成在粗粒度可重構芯片上執行的配置信息,完成基于預先調度的粗粒度可重構芯片映射。
8、可選地,s1中,將預設輸入程序輸入至編譯器前端,輸出預設輸入程序中源代碼的中間表示,包括:
9、s11、獲取預設輸入程序;預設輸入程序為c或c++或python語言編寫的高級語言代碼,并通過注釋方式標記出需要在粗粒度可重構芯片上加速的循環;
10、s12、將預設輸入程序輸入至編譯器前端,輸出預設輸入程序中源代碼的中間表示;
11、其中,中間表示為.ll格式的llvm?(the?llvm?compiler?infrastructure,?llvm編譯器框架)中間表示將預設輸入程序輸入至編譯器前端,輸出中間表示。
12、可選地,s2中,基于中間表示,構建數據流圖結構,包括:
13、基于中間表示,將程序的操作和操作間的依賴關系構建為數據流圖結構;其中,數據流圖結構包括:數據流圖中的節點以及數據流圖中的邊。
14、可選地,數據流圖中的節點,包括:對應llvm中間表示中的操作,包括加法、乘法、讀取、寫入、位運算以及其他操作,復雜任務或簡單任務;
15、數據流圖中的邊,表示計算操作間的依賴信息。
16、可選地,粗粒度可重構芯片結構信息,包括:
17、處理單元信息,包括芯片中的處理單元數量和相互間的連接方式;
18、存儲單元信息,包括芯片中的存儲單元數量和緩存層次結構;
19、以及操作計算信息,包括操作是否被處理單元支持、操作在處理單元上的執行周期數、操作是否支持并行計算以及操作的輸入輸出信息。
20、可選地,s3中,根據數據流圖結構和粗粒度可重構芯片結構信息,對數據流圖中的每個操作進行預先調度,獲得操作的預先分配時間周期,包括:
21、s31、建立數據流圖在粗粒度可重構芯片上映射的時間和資源約束相關的不等式組;
22、s32、基于整數線性規劃法求解不等式組,得到在最小的循環啟動間隔下的操作調度方案,獲得操作的預先分配時間周期。
23、可選地,建立數據流圖在粗粒度可重構芯片上映射的時間和資源約束相關的不等式組,包括:
24、時間約束的不等式描述操作間的依賴關系,定義時間約束的不等式為:
25、tey?≤?tsx
26、其中,x、y分別表示兩個存在依賴關系的操作,t表示時間周期;e表示操作結束時間;s表示操作開始時間;
27、資源約束的不等式描述操作使用計算和存儲資源的約束,定義計算資源約束的不等式為:
28、
29、定義存儲資源約束的不等式:ut?≤?mi
30、其中,mi表示可使用的第i類存儲資源數,ut為在時間周期t使用存儲資源i的操作數。
31、可選地,s4中,根據預先分配時間周期,基于數據流圖結構在粗粒度可重構芯片上進行映射,使用啟發式搜索法獲得映射方案,包括:
32、s41、基于預先分配時間周期,生成需要映射的數據流圖和在時間域上展開的粗粒度可重構芯片結構圖,對子圖同構問題建模;
33、s42、基于啟發式搜索法,求解數據流圖與時間域上展開的粗粒度可重構芯片結構圖的子圖同構問題;
34、s43、判斷子圖同構問題是否存在合法解:若子圖同構問題存在合法解,則確定當前循環啟動間隔合法;否則增加循環啟動間隔,重復步驟s42至s43,直至子圖同構問題存在合法解;
35、s44:根據子圖同構問題的合法解,生成數據流圖在粗粒度可重構芯片上的映射方案。
36、可選地,s5中,配置信息包括:操作在處理單元上的執行信息、操作執行時序信息、內存訪問信息、寄存器訪問信息和數據傳輸信息。
37、另一方面,提供了一種基于預先調度的粗粒度可重構芯片映射裝置,該裝置應用于基于預先調度的粗粒度可重構芯片映射方法,該裝置包括:
38、數據預處理模塊,用于將預設輸入程序輸入至編譯器前端,輸出中間表示;
39、數據流圖構建模塊,用于基于中間表示,構建數據流圖結構;
40、預先調度模塊,用于獲取粗粒度可重構芯片結構信息;基于數據流圖結構在粗粒度可重構芯片上進行映射;根據數據流圖結構和粗粒度可重構芯片結構信息進行預先調度,獲得操作的預先分配時間周期;
41、映射方案確認模塊,用于根據預先分配時間周期,對映射結果進行搜索,確認映射方案;
42、粗粒度可重構芯片映射本文檔來自技高網...
【技術保護點】
1.一種基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述方法包括:
2.根據權利要求1所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述S1中,將預設輸入程序輸入至編譯器前端,輸出預設輸入程序中源代碼的中間表示,包括:
3.根據權利要求2所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述S2中,基于所述中間表示,構建數據流圖結構,包括:
4.根據權利要求3所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述數據流圖中的節點,包括:對應LLVM中間表示中的操作,包括加法、乘法、讀取、寫入、位運算以及其他操作,復雜任務或簡單任務;
5.根據權利要求4所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述粗粒度可重構芯片結構信息,包括:
6.根據權利要求5所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述S3中,根據所述數據流圖結構和所述粗粒度可重構芯片結構信息,對數據流圖中的每個操作進行預先調度,獲得操作的預先分配時間周期,包括:
7.根據權利要求6所
8.根據權利要求7所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述S4中,根據所述預先分配時間周期,基于所述數據流圖結構在粗粒度可重構芯片上進行映射,使用啟發式搜索法獲得映射方案,包括:
9.根據權利要求8所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述S5中,配置信息包括:操作在處理單元上的執行信息、操作執行時序信息、內存訪問信息、寄存器訪問信息和數據傳輸信息。
10.一種基于預先調度的粗粒度可重構芯片映射裝置,所述基于預先調度的粗粒度可重構芯片映射裝置用于實現如權利要求1-9任一項所述基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述裝置包括:
...【技術特征摘要】
1.一種基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述方法包括:
2.根據權利要求1所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述s1中,將預設輸入程序輸入至編譯器前端,輸出預設輸入程序中源代碼的中間表示,包括:
3.根據權利要求2所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述s2中,基于所述中間表示,構建數據流圖結構,包括:
4.根據權利要求3所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述數據流圖中的節點,包括:對應llvm中間表示中的操作,包括加法、乘法、讀取、寫入、位運算以及其他操作,復雜任務或簡單任務;
5.根據權利要求4所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述粗粒度可重構芯片結構信息,包括:
6.根據權利要求5所述的基于預先調度的粗粒度可重構芯片映射方法,其特征在于,所述s3中,根據所述數據流圖結構和所述粗粒度可重構芯...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。