透過您的圖書館登入
IP:18.119.132.223
  • 學位論文

在Open64編譯器中以記錄為基礎的程式碼版面最佳化的追蹤選擇方法

Profile Based Trace Selection of Code Layout Optimizations in Open64 Compiler

指導教授 : 鍾葉青

摘要


由於處理器的成長速度與記憶體的成長速度有所差異造成核心處理器的速度遠大於記憶體存取速度導致程式執行時間主要被記憶體速度所侷限。此現象稱為Memory Wall且會導致耗電量的大量消耗與效能的下降。對於近代的程式快取記憶體變得更加重要來彌補此差距。然而,大型的應用程式有許多指令而快取記憶體可能無法容納所有的指令,這將會使快取記憶體存取失誤導致不只效能下降還有電源消耗。為了避免過度的存取失誤率,我們使用一種編譯器最佳化的增進程式碼版面的技巧來改善效能而非使用較大容量的快取記憶體或是較複雜的快取記憶體控制器。我們提出了一種改善追蹤選擇的演算法來依序程式的行為模式選擇較精確的追蹤。追蹤選擇最佳化主要是為了增進程式碼的區域性使得最近要執行的程式碼可以儘量把存在快取記憶體中以減少核心處理器浪費執行時間再去主要記憶體取資料。為了達到程式的可移植性,我們的演算法為機器非相依性編譯器最佳化的一部分。為了評估我們的演算法,我們把我們的追蹤選擇演算法整合到Open64編譯器中後端的程式碼產生最佳化中。在我們的實驗中,我們使用一台擁有兩個四核心的Intel(R) Xeon(R)機器並且實驗結果顯示出我們的演算法在SPEC CINT2000的效能評測軟體上可以改善最好可達到19%平均也有7%的效能。

並列摘要


HASH(0x1d2e1df0)

參考文獻


[16] K. Pettis, and R. Hansen, “Profile Guided Code Positioning,” Proc. of the ACM SIGPLAN ‘90 Conf. on Programming Language Design and Implementation, 1990.
[1] GNU Compiler Collection (GCC), http://gcc.gnu.org/
[8] Chiou, D. Jain, et al, “Application-Specific Memory Management for Embedded Systems,” Design Automation Conference, 2000.
[9] J. A. Fisher, “Trace Scheduling: A Technique for Global Microcode Compaction,” IEEE Transactions on Computers, vol. c-30, no.7, July, 1981.
[12] W. Hwu, and P. Chang, “Achieving High Instruction Cache Performance With An Optimizing Compiler,” Proc. of the 16th Int. Symp. on Computer Architecture, 1989.

延伸閱讀