龍芯2號鏈接后優(yōu)化器的實(shí)現(xiàn)與分析
發(fā)布時間:2021-11-07 00:03
鏈接后優(yōu)化技術(shù)是在編譯鏈接后對整個可執(zhí)行程序再進(jìn)行優(yōu)化的一種技術(shù)。一方面,它克服了傳統(tǒng)編譯器的優(yōu)化局限于一個函數(shù)、一個模塊的缺點(diǎn),將優(yōu)化范圍擴(kuò)展到整個程序。另一方面,它充分利用了鏈接后確定的信息,發(fā)掘出更多的優(yōu)化機(jī)會。我們參照Arizona大學(xué)為Alpha處理器設(shè)計的鏈接后優(yōu)化器ALTO,針對龍芯2號處理器的微體系結(jié)構(gòu)和指令集的特征,實(shí)現(xiàn)了龍芯上的鏈接后優(yōu)化器GLTO(Godson Link TimeOptimizer)。GLTO使得龍芯處理器SPEC2000定點(diǎn)程序reference分值在龍芯2C平臺上提高了9.4%,在龍芯2E平臺上提高了9.2%,具有顯著的優(yōu)化效果。本文分析了主要優(yōu)化策略的效果和產(chǎn)生的原因,提出了處理器的結(jié)構(gòu)設(shè)計中的改進(jìn)設(shè)想,結(jié)合龍芯處理器的指令集和結(jié)構(gòu)特征提出了相關(guān)的優(yōu)化,針對2E平臺的特性提出了優(yōu)化策略,并分析了優(yōu)化選項(xiàng)的組合,最后將GLTO與ALTO做了對比分析。
【文章來源】:中國科學(xué)院大學(xué)(中國科學(xué)院計算技術(shù)研究所)北京市
【文章頁數(shù)】:64 頁
【學(xué)位級別】:碩士
【部分圖文】:
ELF文件格式
我們在 GLTO 中依據(jù)[PeH90]中的 PH 算法實(shí)現(xiàn)了代碼重排。代碼重排后基本塊的次序被打亂,前驅(qū)后繼關(guān)系已被破壞,需要修復(fù)這些關(guān)系以維持程序本身的正確性。如基本塊 A 的跳轉(zhuǎn)目標(biāo)是不經(jīng)常被執(zhí)行的,就可能被排到了離基本塊 A 較遠(yuǎn)的地方,這時兩塊之間的距離很可能超過了分支指令的跳轉(zhuǎn)范圍,為了解決這個問題,必須引入新的跳轉(zhuǎn)指令,于是代碼重排的開銷增加。這個問題在龍芯的 MIPS-like 指令集中比較突出,跳轉(zhuǎn)指令的偏移位只有 16 位,而在 Alpha 的指令集中偏移位有 21 位。處理該問題的方法將會在第四章中給出。3.8 優(yōu)化分析小結(jié)如果獨(dú)立的看各項(xiàng)優(yōu)化策略,然后將它們的優(yōu)化效果累加,那么累加和會大于實(shí)際最后的加速比,這是因?yàn)楦鞣N優(yōu)化策略之間是互相依賴的,效果互有重疊。所以,我們將各項(xiàng)優(yōu)化策略的加速比乘以實(shí)際加速比和累計加速比的比值,使得各加速比之和等于實(shí)際加速比,由此得到圖 3.8。另外,我們還將全局常數(shù)傳播優(yōu)化效果分為由間接調(diào)用轉(zhuǎn)換為直接調(diào)用帶來的和其他策略引起的。這樣,在圖中可以清晰的看出各種優(yōu)化策略對單個 SPEC 程序的作用在所有優(yōu)化中的比重,以及最后的加速比。
出排序中的下一條超鏈 X,有兩種情況:(1) 超鏈 X 和已經(jīng)排布的超鏈都沒有關(guān)聯(lián),那么就比較 N_CUR_PVUR_PVALUE,然后將超鏈 X 放在小的一端。(2) 超鏈 X 有 n (n>0)個關(guān)聯(lián)的超鏈,即 X1, X2, X3….Xn-1and Xn. 計算以N_DISTANCEi= (N_CUR_PVALUE – P_VALUE of Xi), (i = 1, 2 ….n) S_DISTANCEi= (P_VALUE of Xi– S_CUR_PVALUE), (i = 1, 2 ….n) N_DISTANCE = sum of N_DISTANCEi, (i = 1, 2 ….n) S_DISTANCE = sum of S_DISTANCEi, (i = 1, 2 ….n) 這些數(shù)值表明了超鏈 X 和它關(guān)聯(lián)的超鏈之間的距離。(3) 如果超鏈 X 和它關(guān)聯(lián)的超鏈 Xi的執(zhí)行頻度均大于 0,并且兩個超鏈于直接相聯(lián)的 cache 的大小,我們將判定它是否會與其相關(guān)的超鏈發(fā)生 ca判定步驟如下:a. 計算超鏈的內(nèi)存位置假設(shè)超鏈 X 和 X的 P_VALUE 分別是 P和 P. 這兩個數(shù)值分別是
本文編號:3480770
【文章來源】:中國科學(xué)院大學(xué)(中國科學(xué)院計算技術(shù)研究所)北京市
【文章頁數(shù)】:64 頁
【學(xué)位級別】:碩士
【部分圖文】:
ELF文件格式
我們在 GLTO 中依據(jù)[PeH90]中的 PH 算法實(shí)現(xiàn)了代碼重排。代碼重排后基本塊的次序被打亂,前驅(qū)后繼關(guān)系已被破壞,需要修復(fù)這些關(guān)系以維持程序本身的正確性。如基本塊 A 的跳轉(zhuǎn)目標(biāo)是不經(jīng)常被執(zhí)行的,就可能被排到了離基本塊 A 較遠(yuǎn)的地方,這時兩塊之間的距離很可能超過了分支指令的跳轉(zhuǎn)范圍,為了解決這個問題,必須引入新的跳轉(zhuǎn)指令,于是代碼重排的開銷增加。這個問題在龍芯的 MIPS-like 指令集中比較突出,跳轉(zhuǎn)指令的偏移位只有 16 位,而在 Alpha 的指令集中偏移位有 21 位。處理該問題的方法將會在第四章中給出。3.8 優(yōu)化分析小結(jié)如果獨(dú)立的看各項(xiàng)優(yōu)化策略,然后將它們的優(yōu)化效果累加,那么累加和會大于實(shí)際最后的加速比,這是因?yàn)楦鞣N優(yōu)化策略之間是互相依賴的,效果互有重疊。所以,我們將各項(xiàng)優(yōu)化策略的加速比乘以實(shí)際加速比和累計加速比的比值,使得各加速比之和等于實(shí)際加速比,由此得到圖 3.8。另外,我們還將全局常數(shù)傳播優(yōu)化效果分為由間接調(diào)用轉(zhuǎn)換為直接調(diào)用帶來的和其他策略引起的。這樣,在圖中可以清晰的看出各種優(yōu)化策略對單個 SPEC 程序的作用在所有優(yōu)化中的比重,以及最后的加速比。
出排序中的下一條超鏈 X,有兩種情況:(1) 超鏈 X 和已經(jīng)排布的超鏈都沒有關(guān)聯(lián),那么就比較 N_CUR_PVUR_PVALUE,然后將超鏈 X 放在小的一端。(2) 超鏈 X 有 n (n>0)個關(guān)聯(lián)的超鏈,即 X1, X2, X3….Xn-1and Xn. 計算以N_DISTANCEi= (N_CUR_PVALUE – P_VALUE of Xi), (i = 1, 2 ….n) S_DISTANCEi= (P_VALUE of Xi– S_CUR_PVALUE), (i = 1, 2 ….n) N_DISTANCE = sum of N_DISTANCEi, (i = 1, 2 ….n) S_DISTANCE = sum of S_DISTANCEi, (i = 1, 2 ….n) 這些數(shù)值表明了超鏈 X 和它關(guān)聯(lián)的超鏈之間的距離。(3) 如果超鏈 X 和它關(guān)聯(lián)的超鏈 Xi的執(zhí)行頻度均大于 0,并且兩個超鏈于直接相聯(lián)的 cache 的大小,我們將判定它是否會與其相關(guān)的超鏈發(fā)生 ca判定步驟如下:a. 計算超鏈的內(nèi)存位置假設(shè)超鏈 X 和 X的 P_VALUE 分別是 P和 P. 這兩個數(shù)值分別是
本文編號:3480770
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3480770.html
最近更新
教材專著