針對(duì)循環(huán)的內(nèi)存訪(fǎng)問(wèn)模式分析與應(yīng)用
發(fā)布時(shí)間:2017-04-13 07:35
本文關(guān)鍵詞:針對(duì)循環(huán)的內(nèi)存訪(fǎng)問(wèn)模式分析與應(yīng)用,由筆耕文化傳播整理發(fā)布。
【摘要】:隨著硬件工藝技術(shù)的進(jìn)步,處理器芯片集成了越來(lái)越多的晶體管,處理器速度的飛速提高導(dǎo)致其與內(nèi)存的速度鴻溝不斷拉大,F(xiàn)代主流的體系結(jié)構(gòu)都采用分層緩存架構(gòu)來(lái)緩和處理器和內(nèi)存訪(fǎng)問(wèn)速度差距帶來(lái)的影響。有效地利用緩存成為系統(tǒng)性能的關(guān)鍵因素之一。除了硬件上的設(shè)計(jì)考慮,常用的軟件方法是借助編譯器強(qiáng)大的分析和優(yōu)化能力,在中間代碼層次對(duì)軟件程序進(jìn)行變換,使程序的指令局部性和數(shù)據(jù)局部性盡可能高,從而降低緩存的失效次數(shù),提高緩存性能。基于編譯器來(lái)優(yōu)化程序局部性常分為軟件預(yù)取、代碼變換和數(shù)據(jù)變換三種。 本文基于以上研究思路,致力于在LLVM (Low Level Virtual Machine)編譯器系統(tǒng)上開(kāi)發(fā)一個(gè)緩存優(yōu)化原型系統(tǒng),從而能夠結(jié)合LLVM強(qiáng)大的分析和優(yōu)化能力實(shí)現(xiàn)對(duì)緩存性能地提升。為此,本文基于LLVM中間代碼進(jìn)行了下面的一些工作: 1、設(shè)計(jì)實(shí)現(xiàn)一個(gè)使用數(shù)據(jù)變換技術(shù)來(lái)進(jìn)行緩存優(yōu)化的原型系統(tǒng)APCache,涉及代碼分析到代碼優(yōu)化的完整過(guò)程。系統(tǒng)以L(fǎng)LVM遍的方式對(duì)中間代碼中的循環(huán)進(jìn)行內(nèi)存訪(fǎng)問(wèn)模式分析,根據(jù)分析結(jié)果優(yōu)化并生成新的訪(fǎng)問(wèn)模式,再更新中間代碼。 2、以對(duì)循環(huán)中的數(shù)組進(jìn)行布局優(yōu)化為重點(diǎn)研究,探討在LLVM中實(shí)現(xiàn)經(jīng)典算法所需要的技術(shù)。循環(huán)加數(shù)組的使用方式常用在訪(fǎng)存密集型程序中,本文采用Leung提出的經(jīng)典算法來(lái)對(duì)循環(huán)中數(shù)組進(jìn)行重布局優(yōu)化,提高數(shù)據(jù)的空間局部性。 3、提出一種輕量級(jí)的函數(shù)指針?lè)治鏊惴‵P,為跨過(guò)程的緩存優(yōu)化提供精確的函數(shù)調(diào)用圖支持。算法使用強(qiáng)連通分量(SCC)流敏感和上下文敏感技術(shù)確保分析精度,通過(guò)縮小分析對(duì)象的范圍提高分析速度;贔P的分析結(jié)果構(gòu)造的跨文件函數(shù)調(diào)用圖為跨過(guò)程的緩存優(yōu)化提供了部分技術(shù)支持。
【關(guān)鍵詞】:緩存 數(shù)據(jù)變換 內(nèi)存訪(fǎng)問(wèn)模式 函數(shù)指針?lè)治?/strong> LLVM
【學(xué)位授予單位】:中國(guó)科學(xué)技術(shù)大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2015
【分類(lèi)號(hào)】:TP333.1
【目錄】:
- 摘要5-6
- Abstract6-8
- 目錄8-11
- 圖目錄11-13
- 表目錄13-14
- 第1章 緒論14-22
- 1.1 研究背景14-15
- 1.2 相關(guān)工作與研究現(xiàn)狀15-19
- 1.2.1 提高緩存性能:基于硬件的方法15-16
- 1.2.2 提高緩存性能:基于軟件的方法16-18
- 1.2.3 函數(shù)指針?lè)治黾夹g(shù)18-19
- 1.3 研究?jī)?nèi)容19-20
- 1.4 論文組織20-22
- 第2章 LLVM編譯器系統(tǒng)22-32
- 2.1 LLVM總體結(jié)構(gòu)和工具鏈22-26
- 2.2 LLVM中間代碼26-27
- 2.3 LLVM虛擬指令集27-29
- 2.4 LLVM類(lèi)型系統(tǒng)29-30
- 2.5 本章小結(jié)30-32
- 第3章 APCACHE設(shè)計(jì)和實(shí)現(xiàn)32-50
- 3.1 APCache總體架構(gòu)32-33
- 3.2 循環(huán)訪(fǎng)問(wèn)模式分析33-41
- 3.2.1 總體框架33-34
- 3.2.2 一個(gè)簡(jiǎn)單例子34-36
- 3.2.3 具體實(shí)現(xiàn)36-41
- 3.3 矩陣變換框架41-45
- 3.3.1 數(shù)據(jù)布局優(yōu)化基礎(chǔ)42
- 3.3.2 數(shù)據(jù)布局優(yōu)化理論42-43
- 3.3.3 計(jì)算轉(zhuǎn)換矩陣43-45
- 3.4 LLVM中間代碼更新框架45-48
- 3.4.1 總體框架45-46
- 3.4.2 數(shù)組和索引生成46-47
- 3.4.3 數(shù)組訪(fǎng)問(wèn)生成47-48
- 3.4.4 中間代碼def-use更新48
- 3.5 本章小結(jié)48-50
- 第4章 跨文件的函數(shù)調(diào)用圖構(gòu)造50-58
- 4.1 FP算法特點(diǎn)50-51
- 4.2 一個(gè)簡(jiǎn)單例子51-52
- 4.3 FP算法實(shí)現(xiàn)52-56
- 4.3.1 全局變量分析52-53
- 4.3.2 SCC流敏感過(guò)程內(nèi)分析53-55
- 4.3.3 上下文敏感過(guò)程間分析55-56
- 4.4 跨文件的函數(shù)調(diào)用圖的構(gòu)造56-57
- 4.5 本章小結(jié)57-58
- 第5章 實(shí)驗(yàn)結(jié)果與分析58-74
- 5.1 測(cè)試程序集的選用58-60
- 5.1.1 APCache的測(cè)試程序58-59
- 5.1.2 FP的測(cè)試程序59-60
- 5.2 實(shí)驗(yàn)方法60-61
- 5.2.1 APCache的實(shí)驗(yàn)方法60-61
- 5.2.2 FP的實(shí)驗(yàn)方法61
- 5.3 效果測(cè)試61-71
- 5.3.1 APcache原型系統(tǒng)測(cè)試61-69
- 5.3.2 FP算法性能和分析精度測(cè)試69-71
- 5.4 實(shí)驗(yàn)結(jié)論71-74
- 5.4.1 對(duì)于A(yíng)PCache原型系統(tǒng)71-72
- 5.4.2 對(duì)于函數(shù)指針?lè)治鏊惴‵P72-74
- 第6章 結(jié)束語(yǔ)74-76
- 參考文獻(xiàn)76-82
- 致謝82-84
- 在讀期間發(fā)表的學(xué)術(shù)論文與取得的研究成果84
【參考文獻(xiàn)】
中國(guó)期刊全文數(shù)據(jù)庫(kù) 前1條
1 于洪濤;張兆慶;;激進(jìn)域敏感基于合并的指針?lè)治鯷J];計(jì)算機(jī)學(xué)報(bào);2009年09期
本文關(guān)鍵詞:針對(duì)循環(huán)的內(nèi)存訪(fǎng)問(wèn)模式分析與應(yīng)用,,由筆耕文化傳播整理發(fā)布。
本文編號(hào):303117
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/303117.html
最近更新
教材專(zhuān)著