用于粗粒度可重構(gòu)處理器的編譯優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種用于粗粒度可重構(gòu)處理器的編譯優(yōu)化 方法。
【背景技術(shù)】
[0002] 可重構(gòu)處理器(reconfigurableprocessor) -般由主處理器和可重構(gòu)計算陣 列(ReconfigurableComputingArray,RCA)親合而成。移動時代的大部分應(yīng)用包含大量 計算密集型的程序,因此特別適合在可重構(gòu)處理器上執(zhí)行,其中主處理器負責給RCA進行 配置以改變其功能來運行計算密集型程序??删幊踢壿嬯嚵校╢ieldprogrammablegate array,F(xiàn)PGA)是可重構(gòu)處理器的一個良好范例,但是FPGA架構(gòu)在比特級(bit-level)重構(gòu) 的基礎(chǔ)之上,即數(shù)據(jù)通路是由許多個比特級處理單元互聯(lián)而成。這種復雜互聯(lián)帶來幾個缺 陷,一是布線功耗開銷極大,二是資源利用率低。另外復雜互聯(lián)需要巨大的配置信息,較長 時間的準備配置信息限制了進行動態(tài)可重構(gòu)的可能性。
[0003]粗粒度可重構(gòu)處理器(coarse-grainedreconfigurableprocessor,CGRA)將比 特級重構(gòu)單元擴大為多比特可重構(gòu)數(shù)據(jù)通路,稱之為處理單元(processingelement,PE), 每個PE經(jīng)重構(gòu)后能執(zhí)行完整的算子。這樣就避免了FPGA的幾點缺陷。同時CGRA的粗粒 度也帶來了編譯器設(shè)計的挑戰(zhàn)。與傳統(tǒng)處理器相比,CGRA的分布式寄存器分布還有RCA陣 列的網(wǎng)狀互聯(lián)結(jié)構(gòu)帶來了布局布線的要求。與FPGA相比,CGRA的有限布線資源對布局布 線的要求更加嚴格。因此編譯器的設(shè)計在粗粒度可重構(gòu)處理器領(lǐng)域相當關(guān)鍵。
[0004] 由于編譯后得到的程序有高性能和低功耗是矛盾的兩面,因此前面的研宄都僅僅 集中于優(yōu)化其中一點。在高性能領(lǐng)域,常用的方法是移植自多核處理器的軟件流水技術(shù), 該技術(shù)通過重疊不同循環(huán)實例之間的算子,形成循環(huán)內(nèi)核,從而獲得并行性,縮短程序執(zhí)行 時間。其中不同循環(huán)之間的啟動間隔(InitialInterval,II)的長度就等于循環(huán)內(nèi)核的長 度,由于循環(huán)內(nèi)核包含一次循環(huán)所有的算子,因此II的長度就等于并行化以后程序的執(zhí)行 時間,因此II越短,程序執(zhí)行時間越短。又通過分析知百分之九十的執(zhí)行時間花費百分之 十的循環(huán)代碼上,因此對關(guān)鍵循環(huán)的并行化處理是提高性能的良好方法。在CGRA上比較有 效的是子圖同胚,子圖滿同態(tài),圖子式模調(diào)度方法。在低功耗方面,常用的是減少配置功耗 和可重構(gòu)陣列的計算功耗兩種,其中后者的通用性更強。后者引入固定雙供電電壓,減少 RCA上運行非關(guān)鍵算子的PE的供電電壓,由于此類PE數(shù)量不少,因此能夠減少功耗。但上 述的研宄中未能把這兩種理念結(jié)合起來。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
[0006] 為此,本發(fā)明的目的在于提出一種高性能、低功耗的用于粗粒度可重構(gòu)處理器的 編譯優(yōu)化方法。
[0007] 為了實現(xiàn)上述目的,本發(fā)明實施例的用于粗粒度可重構(gòu)處理器的編譯優(yōu)化方法, 包括以下步驟:對原始數(shù)據(jù)流圖進行預(yù)處理,以獲取修改后的數(shù)據(jù)流圖,計算最小啟動間隔 并將所述最小啟動間隔設(shè)置為映射起點;創(chuàng)建所述粗粒度可重構(gòu)處理器的三維布線資源模 限制圖;對所述布線資源模限制圖進行圖子式檢測,以獲取相應(yīng)的所述修改后的數(shù)據(jù)流圖 的映射圖;保存所述修改后的數(shù)據(jù)流圖的映射圖的所有調(diào)度方案;依據(jù)功耗函數(shù)從所述所 有調(diào)度方案中選擇功耗最小的路徑作為最優(yōu)方案。
[0008] 根據(jù)本發(fā)明實施例的用于粗粒度可重構(gòu)處理器的編譯優(yōu)化方法,從采用分層電壓 優(yōu)化的方法從所有的映射圖中選擇最優(yōu)的方案,有效地將分層電壓架構(gòu)與循環(huán)映射并行化 結(jié)合起來,具有高效能、低功耗的優(yōu)點。
[0009] 在一些示例中,所述預(yù)處理具體包括:根據(jù)預(yù)設(shè)的出度限制和層級限制改變原始 數(shù)據(jù)流圖,以獲取修改后的數(shù)據(jù)流圖。
[0010] 在一些示例中,所述出度限制為:每個算子的出度小于布線資源模限制圖中處理 單元的出度。
[0011] 在一些示例中,所述層級限制為:所述原始數(shù)據(jù)流圖中每一層的算子的數(shù)目小于 所述粗粒度可重構(gòu)處理器的處理單元的數(shù)目。
[0012] 在一些示例中,還包括:對所述修改后的數(shù)據(jù)流圖的算子進行排序,使得關(guān)鍵路徑 的算子的優(yōu)先級高于其他路徑的算子的優(yōu)先級。
[0013] 在一些示例中,所述圖子式檢測過程具體如下:將所述修改后的數(shù)據(jù)流圖中的一 個節(jié)點映射到所述布線資源模限制圖上,以獲取映射路徑,并對該映射路徑進行預(yù)測,以便 確定是否選擇該映射路徑;采用重復計算的方法對獲取到的多條映射路徑進行處理;將獲 取的多條映射路徑構(gòu)造成數(shù)據(jù)流圖,并對所述將其與所述修改后的數(shù)據(jù)流圖進行圖子式檢 測,若成功,則進行下一個節(jié)點的檢測,反之,則對該節(jié)點進行修復。
[0014] 在一些示例中,采用擴展圖的方法修復所述節(jié)點的圖子式檢測失敗。
[0015] 在一些示例中,利用功耗函數(shù)從所述所有調(diào)度方案中選擇功耗最小的路徑,所述 功耗函數(shù)的定義如下:
【主權(quán)項】
1. 一種用于粗粒度可重構(gòu)處理器的編譯優(yōu)化方法,其特征在于,包括以下步驟: 對原始數(shù)據(jù)流圖進行預(yù)處理,以獲取修改后的數(shù)據(jù)流圖,計算最小啟動間隔并將所述 最小啟動間隔設(shè)置為映射起點; 創(chuàng)建所述粗粒度可重構(gòu)處理器的三維布線資源模限制圖; 對所述布線資源模限制圖進行圖子式檢測,以獲取相應(yīng)的所述修改后的數(shù)據(jù)流圖的映 射圖; 保存所述修改后的數(shù)據(jù)流圖的映射圖的所有調(diào)度方案; 從所述所有調(diào)度方案中選擇功耗最小的路徑作為最優(yōu)方案。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)處理具體包括: 根據(jù)預(yù)設(shè)的出度限制和層級限制改變原始數(shù)據(jù)流圖,以獲取修改后的數(shù)據(jù)流圖。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述出度限制為:每個算子的出度小于布 線資源模限制圖中處理單元的出度。
4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述層級限制為:所述原始數(shù)據(jù)流圖中每 一層的算子的數(shù)目小于所述粗粒度可重構(gòu)處理器的處理單元的數(shù)目。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:對所述修改后的數(shù)據(jù)流圖的算子 進行排序,使得關(guān)鍵路徑的算子的優(yōu)先級高于其他路徑的算子的優(yōu)先級。
6. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述圖子式檢測過程具體如下: 將所述修改后的數(shù)據(jù)流圖中的一個節(jié)點映射到所述布線資源模限制圖上,以獲取映射 路徑,并對該映射路徑進行預(yù)測,以便確定是否選擇該映射路徑; 采用重復計算的方法對獲取到的多條映射路徑進行處理; 將獲取的多條映射路徑構(gòu)造成數(shù)據(jù)流圖,并將其與所述修改后的數(shù)據(jù)流圖進行圖子式 檢測,若成功,則進行下一個節(jié)點的檢測,反之,則對該節(jié)點進行修復。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,采用擴展圖的方法修復所述節(jié)點的圖子 式檢測失敗。
8. 根據(jù)權(quán)利要求1-7任意一項所述的方法,其特征在于,利用功耗函數(shù)從所述所有調(diào) 度方案中選擇功耗最小的路徑,所述功耗函數(shù)的定義如下:
其中,PA,卩工和P LS分另lj是運算器(arithmetic logical unit,ALU),互連 (interconnect)和電平轉(zhuǎn)換器(level shifter)相應(yīng)的功耗,VDDH指施加的高電壓,VDDI;為 施加的低電壓,D A,D^ALU和互連的延時,Dc是關(guān)鍵路徑的延時,u(i,VDIJ是延時隨電壓 變化的函數(shù),V(i)是互連的供電電壓,PEs代表粗粒度可重構(gòu)處理器中的各個處理單元,i 表示單個所述處理單元。
9.根據(jù)權(quán)利要求1-7任意一項所述的方法,其特征在于,按照分層電壓優(yōu)化的方法從 所述所有調(diào)度方案中選擇功耗最小的路徑作為最優(yōu)方案。
【專利摘要】本發(fā)明提出一種用于粗粒度可重構(gòu)處理器的編譯優(yōu)化方法,包括以下步驟:對原始數(shù)據(jù)流圖進行預(yù)處理,以獲取修改后的數(shù)據(jù)流圖,計算最小啟動間隔并將最小啟動間隔設(shè)置為映射起點;創(chuàng)建粗粒度可重構(gòu)處理器的三維布線資源模限制圖;對布線資源模限制圖進行圖子式檢測,以獲取修改后的數(shù)據(jù)流圖的映射圖;保存對應(yīng)于最小啟動間隔的映射圖的所有調(diào)度方案;從所有調(diào)度方案中選擇功耗最小的路徑作為最優(yōu)方案。本發(fā)明的方法,具有高性能、低功耗的優(yōu)點。
【IPC分類】G06F9-45
【公開號】CN104615474
【申請?zhí)枴緾N201410443909
【發(fā)明人】尹首一, 徐兵, 劉雷波, 魏少軍, 朱建峰
【申請人】清華大學
【公開日】2015年5月13日
【申請日】2014年9月2日