注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡軟件與程序設計匯編語言/編譯原理現(xiàn)代體系結(jié)構(gòu)的優(yōu)化編譯器

現(xiàn)代體系結(jié)構(gòu)的優(yōu)化編譯器

現(xiàn)代體系結(jié)構(gòu)的優(yōu)化編譯器

定 價:¥69.00

作 者: (美)Randy Allen,(美)Ken Kennedy著;張兆慶等譯;張兆慶譯
出版社: 機械工業(yè)出版社
叢編項: 計算機科學叢書
標 簽: 暫缺

ISBN: 9787111141228 出版時間: 2004-06-01 包裝: 膠版紙
開本: 26cm 頁數(shù): 573 字數(shù):  

內(nèi)容簡介

  本書介紹對現(xiàn)代體系結(jié)構(gòu)的編譯器進行優(yōu)化的方法,理論基礎是基于循環(huán)依賴的。分析基于依賴的變換的正確性論述和依賴測試的詳細過程。剖析怎樣擴展依賴去處理循環(huán)嵌套中的控制流以及跨越整個程序的過程。本書還討論怎樣能用依賴來回答現(xiàn)代計算機系統(tǒng)編譯中的眾多重要問題,包括支持不同類型體系結(jié)構(gòu)(例如,向量、多處理器、超標量)的并行化,存儲層次結(jié)構(gòu)的編譯器管理,帶指令級并行性的機器的指令調(diào)度。最后,介紹一些不大為人熟知的應用,如硬件設計、數(shù)組語言實現(xiàn)以及消息傳遞系統(tǒng)的編譯。設計具有高性能微處理器的現(xiàn)代計算機體系結(jié)構(gòu),能夠極大地提高計算機在性能方面的潛在優(yōu)勢。然而其高度的復雜性使得產(chǎn)生有效代碼和實現(xiàn)其全部優(yōu)勢變得愈加困難。這本出自兩位學術(shù)權(quán)威的具有里程碑意義的教科書,重點闡述了編譯器對于解決這個至關(guān)重要問題所起到的關(guān)鍵作用。數(shù)據(jù)依賴是在高性能微處理器和并行體系結(jié)構(gòu)上優(yōu)化程序的基本編譯器分析工具。它能使所編寫的編譯器自動地將簡單的串行程序轉(zhuǎn)換成具有現(xiàn)代體系結(jié)構(gòu)特征的程序。數(shù)據(jù)依賴支持許多變換策略,也應用于一些重要的優(yōu)化問題,本書對此做了全面介紹,并對基于數(shù)據(jù)依賴的編譯器優(yōu)化的重要性和廣泛應用性進行了論證,給出了理解和實現(xiàn)它們所需要的基礎,同時還為手工轉(zhuǎn)換程序提供了詳細說明。書中介紹的方法是基于過去二十多年的研究成果.取材于在美國Rice大學的研究原型和幾個有關(guān)的商業(yè)系統(tǒng)中實現(xiàn)的策略。致力于現(xiàn)代計算機體系結(jié)構(gòu)設計和優(yōu)化編譯器的研究人員、業(yè)界專家和研究生都可以從本書中獲益。本書特點:●提供一種簡單實用的算法和方法的指南,在高性能微處理器和并行系統(tǒng)中是最有效的●用處理過的例子示范每個變換●用實例分析編譯器如何實現(xiàn)每一章中描述的理論和實踐●介紹存儲層次結(jié)構(gòu)問題的最完善的處理方法●全書用依賴圖來闡明排序關(guān)系●涉及各種語言。包括Fortran77、C、硬件定義語言、Fortran 90和High Performance Fortran

作者簡介

  Randy Allen以優(yōu)異盛開獲得Harvard大學化學專業(yè)學士學位,在Rice(賴斯)大學獲得數(shù)學科學碩士和博士學位。成為Rice大學研究員之后,Allen博士參加了業(yè)界編譯器構(gòu)造的實踐活動。他經(jīng)歷了在Ardent Computers、Sun Microsystems、Chronologic Simulation、Synopsys和CynApps等公司的研究、高級開發(fā)以及管理工作。他本人以及和他人合作在各種學術(shù)會議和雜志上發(fā)表了15篇關(guān)于計算機優(yōu)化、編譯器重構(gòu)和硬件模擬等方面的論文。他出任Suppercomputing和Conference on Programming Language and Design Implementation等會議的程序委員會成員。目前,他是幾家公司(包括IBM、Intermetrics、Microtes Research和Mentor Graphics)的優(yōu)化編譯器顧問,是Catalytic Compilers公司總裁和CEO。Ken Kenedy是Rice大學計算工程的Ann and John Doerr教授和高性能軟件研究中心(主任)。他是電氣和電子工程師學會(IEEE)、計算機協(xié)會(ACM)以及美國科學促進會協(xié)會(AAAS)的會士,自1990年起,他是美國工程院院士。從1997年到1999年,任的PITAC報告中的領導作用,獲得計算研究協(xié)會杰出貢獻獎和RCI Seymour Cray HPCC Industry Recognition獎。Kennedy教授發(fā)表了150多篇學術(shù)論文,并指導34篇有關(guān)高性能計算機系統(tǒng)程序設計支撐軟件的博士論文。他對高性能計算軟件方面的貢獻得到了公認,1995年他獲得W.Wallace Mcdowell獎,這是IEEE Computer Society的最高研究獎項。1999年他被提名為ACM SIGPLAN程序設計語言成就獎的第三位接受者。

圖書目錄

第1章  高性能體系結(jié)構(gòu)對編譯器的挑戰(zhàn)
 1. 1  概述和目標
 1. 2  流水線
 1. 2. 1  流水線指令部件
 1. 2. 2  流水線執(zhí)行部件
 1. 2. 3  并行功能部件
 1. 2. 4  標量流水線編譯
 1. 3  向量指令
 1. 3. 1  向量硬件概述
 1. 3. 2  向量流水線編譯
 1. 4  超標量處理器和VLIW處理器
 1. 4. 1  多發(fā)射指令部件
 1. 4. 2  多發(fā)射處理器的編譯
 1. 5  處理器并行性
 1. 5. 1  處理器并行性概述
 1. 5. 2  異步并行性的編譯
 1. 6  存儲層次結(jié)構(gòu)
 1. 6. 1  存儲系統(tǒng)概述
 1. 6. 2  存儲層次結(jié)構(gòu)的編譯
 1. 7  實例研究:矩陣乘法
 1. 8  先進編譯技術(shù)
 1. 8. 1  依賴
 1. 8. 2  變換
 1. 9  小結(jié)
 1. 10  實例研究
 1. 11  歷史評述與參考文獻
 習題
 第2章  依賴:理論與實踐
 2. 1  引言
 2. 2  依賴及其性質(zhì)
 2. 2. 1  存-取分類
 2. 2. 2  循環(huán)內(nèi)的依賴
 2. 2. 3  依賴和變換
 2. 2. 4  距離向量和方向向量
 2. 2. 5  循環(huán)攜帶依賴和循環(huán)無關(guān)依賴
 2. 3  簡單的依賴測試
 2. 4  并行化和向量化
 2. 4. 1  并行化
 2. 4. 2  向量化
 2. 4. 3  一個先進的向量化算法
 2. 5  小結(jié)
 2. 6  實例研究
 2. 7  歷史評述與參考文獻
 習題
 第3章  依賴測試
 3. 1  引言
 3. 2  依賴測試概述
 3. 2. 1  下標劃分
 3. 2. 2  合并方向向量
 3. 3  單下標依賴測試
 3. 3. 1  ZIV測試
 3. 3. 2  SIV測試
 3. 3. 3  多歸納變量測試
 3. 4  耦合組中的測試
 3. 4. 1  Delta測試
 3. 4. 2  更強有力的多下標測試
 3. 5  實驗研究
 3. 6  各種測試的集成
 3. 7  小結(jié)
 3. 8  實例研究
 3. 9  歷史評述與參考文獻
 習題
 第4章  初等變換
 4. 1  引言
 4. 2  信息需求
 4. 3  循環(huán)正規(guī)化
 4. 4  數(shù)據(jù)流分析
 4. 4. 1  定義-使用鏈
 4. 4. 2  死代碼消除
 4. 4. 3  常數(shù)傳播
 4. 4. 4  靜態(tài)單賦值形式
 4. 5  歸納變量暴露
 4. 5. 1  前向表達式替換
 4. 5. 2  歸納變量替換
 4. 5. 3  驅(qū)動替換過程
 4. 6  小結(jié)
 4. 7  實例研究
 4. 8  歷史評述與參考文獻
 習題
 第5章  提高細粒度并行性
 5. 1  引言
 5. 2  循環(huán)交換
 5. 2. 1  循環(huán)交換的安全性
 5. 2. 2  循環(huán)交換的有利性
 5. 2. 3  循環(huán)交換和向量化
 5. 3  標量擴展
 5. 4  標量和數(shù)組重命名
 5. 5  節(jié)點分裂
 5. 6  歸約識別
 5. 7  索引集分裂
 5. 7. 1  閾值分析
 5. 7. 2  循環(huán)剝離
 5. 7. 3  基于區(qū)域的分裂
 5. 8  運行時符號解析
 5. 9  循環(huán)傾斜
 5. 10  各種變換的集成
 5. 11  實際機器的復雜性
 5. 12  小結(jié)
 5. 13  實例研究
 5. 13. 1  PFC
 5. 13. 2  ArdentTitan編譯器
 5. 13. 3  向量化的性能
 5. 14  歷史評述與參考文獻
 習題
 第6章  開發(fā)粗粒度并行性
 6. 1  引言
 6. 2  單循環(huán)的處理方法
 6. 2. 1  私有化
 6. 2. 2  循環(huán)分布
 6. 2. 3  對齊
 6. 2. 4  代碼復制
 6. 2. 5  循環(huán)合并
 6. 3  緊嵌循環(huán)套
 6. 3. 1  為并行化的循環(huán)交換
 6. 3. 2  循環(huán)選擇
 6. 3. 3  循環(huán)反轉(zhuǎn)
 6. 3. 4  為并行化的循環(huán)傾斜
 6. 3. 5  模變換
 6. 3. 6  基于有利性的并行化方法
 6. 4  非緊嵌循環(huán)套
 6. 4. 1  多層循環(huán)合并
 6. 4. 2  一個并行代碼生成算法
 6. 5  一個擴充的例子
 6. 6  并行性的封裝
 6. 6. 1  循環(huán)分段
 6. 6. 2  流水線并行性
 6. 6. 3  調(diào)度并行任務
 6. 6. 4  制導的自調(diào)度
 6. 7  小結(jié)
 6. 8  實例研究
 6. 8. 1  PFC和ParaScope
 6. 8. 2  ArdentTitan編譯器
 6. 9  歷史評述與參考文獻
 習題
 第7章  處理控制流
 7. 1  引言
 7. 2  if換
 7. 2. 1  定義
 7. 2. 2  分支的分類
 7. 2. 3  前向分支
 7. 2. 4  出口分支
 7. 2. 5  后向分支
 7. 2. 6  完全前向分支消除
 7. 2. 7  化簡
 7. 2. 8  迭代依賴
 7. 2. 9  if重構(gòu)
 7. 3  控制依賴
 7. 3. 1  構(gòu)造控制依賴
 7. 3. 2  循環(huán)中的控制依賴
 7. 3. 3  控制依賴的一個執(zhí)行模型
 7. 3. 4  控制依賴在并行化中的應用
 7. 4  小結(jié)
 7. 5  實例研究
 7. 6  歷史評述與參考文獻
 習題
 第8章  改進寄存器的使用
 8. 1  引言
 8. 2  標量寄存器分配
 8. 2. 1  面向寄存器重用的數(shù)據(jù)依賴
 8. 2. 2  循環(huán)攜帶和循環(huán)無關(guān)的重用
 8. 2. 3  寄存器分配的例子
 8. 3  標量替換
 8. 3. 1  依賴圖剪枝
 8. 3. 2  簡單替換
 8. 3. 3  處理循環(huán)攜帶依賴
 8. 3. 4  跨越多個迭代的依賴
 8. 3. 5  刪除標量拷貝
 8. 3. 6  緩解寄存器壓力
 8. 3. 7  標量替換算法
 8. 3. 8  實驗數(shù)據(jù)
 8. 4  展開和壓緊
 8. 4. 1  展開和壓緊的合法性
 8. 4. 2  展開和壓緊算法
 8. 4. 3  展開和壓緊的效果
 8. 5  面向寄存器重用的循環(huán)交換
 8. 5. 1  對循環(huán)交換的考慮
 8. 5. 2  循環(huán)交換算法
 8. 6  面向寄存器重用的循環(huán)合并
 8. 6. 1  面向重用的有利的循環(huán)合并
 8. 6. 2  面向合并的循環(huán)對齊
 8. 6. 3  合并機制
 8. 6. 4  加權(quán)循環(huán)合并算法
 8. 6. 5  面向寄存器重用的多層循環(huán)合并
 8. 7  改進寄存器使用的變換綜合
 8. 7. 1  決定變換的順序
 8. 7. 2  例子:矩陣乘法
 8. 8  復雜的循環(huán)嵌套
 8. 8. 1  包含if語句的循環(huán)
 8. 8. 2  梯形循環(huán)
 8. 9  小結(jié)
 8. 10  實例研究
 8. 11  歷史評述與參考文獻
 習題
 第9章  管理高速緩存
 9. 1  引言
 9. 2  適合于空間局部性的循環(huán)交換
 9. 3  分塊
 9. 3. 1  非對齊的數(shù)據(jù)
 9. 3. 2  分塊的合法性
 9. 3. 3  分塊的有利性
 9. 3. 4  一個簡單的分塊算法
 9. 3. 5  帶傾斜的分塊
 9. 3. 6  循環(huán)合并和對齊
 9. 3. 7  結(jié)合其他變換的分塊
 9. 3. 8  有效性
 9. 4  復雜循環(huán)嵌套中的高速緩存管理
 9. 4. 1  三角形的高速緩存分塊
 9. 4. 2  特殊用途的變換
 9. 5  軟件預取
 9. 5. 1  一個軟件預取算法
 9. 5. 2  軟件預取的有效性
 9. 6  小結(jié)
 9. 7  實例研究
 9. 8  歷史評述與參考文獻
 習題
 第10章  調(diào)度
 10. 1  引言
 10. 2  指令調(diào)度
 10. 2. 1  機器模型
 10. 2. 2  直線型代碼的圖調(diào)度
 10. 2. 3  表調(diào)度
 10. 2. 4  蹤跡調(diào)度
 10. 2. 5  循環(huán)內(nèi)的調(diào)度
 10. 3  向量部件調(diào)度
 10. 3. 1  鏈接
 10. 3. 2  協(xié)處理器
 10. 4  小結(jié)
 10. 5  實例研究
 10. 6  歷史評述與參考文獻
 習題
 第11章  過程間分析和優(yōu)化
 11. 1  引言
 11. 2  過程間分析
 11. 2. 1  過程間問題
 11. 2. 2  過程間問題分類
 11. 2. 3  流不敏感副作用分析
 11. 2. 4  流不敏感別名分析
 11. 2. 5  常數(shù)傳播
 11. 2. 6  注銷分析
 11. 2. 7  符號化分析
 11. 2. 8  數(shù)組區(qū)域分析
 11. 2. 9  調(diào)用圖的構(gòu)造
 11. 3  過程間優(yōu)化
 11. 3. 1  內(nèi)聯(lián)替換
 11. 3. 2  過程克隆
 11. 3. 3  混合優(yōu)化
 11. 4  管理整個程序的編譯
 11. 5  小結(jié)
 11. 6  實例研究
 11. 7  歷史評述與參考文獻
 習題
 第12章  C語言和硬件設計中的依賴
 12. 1  引言
 12. 2  優(yōu)化C語言
 12. 2. 1  指針
 12. 2. 2  命名和結(jié)構(gòu)
 12. 2. 3  循環(huán)
 12. 2. 4  作用域和靜態(tài)變量
 12. 2. 5  方言
 12. 2. 6  其他問題
 12. 3  硬件設計
 12. 3. 1  硬件描述語言
 12. 3. 2  優(yōu)化模擬
 12. 3. 3  綜合優(yōu)化
 12. 4  小結(jié)
 12. 5  實例研究
 12. 6  歷史評述與參考文獻
 習題
 第13章  編譯數(shù)組賦值
 13. 1  引言
 13. 2  簡單的標量化
 13. 3  標量化變換
 13. 3. 1  循環(huán)反轉(zhuǎn)
 13. 3. 2  輸入預取
 13. 3. 3  循環(huán)分裂
 13. 4  多維標量化
 13. 4. 1  多維中的簡單標量化
 13. 4. 2  外層循環(huán)預取
 13. 4. 3  用于標量化的循環(huán)交換
 13. 4. 4  通用的多維標量化
 13. 4. 5  一個標量化的例子
 13. 5  對向量機器的考慮
 13. 6  標量化后的循環(huán)交換和合并
 13. 7  小結(jié)
 13. 8  實例研究
 13. 9  歷史評述與參考文獻
 習題
 第14章  編譯高性能Fortran
 14. 1  引言
 14. 2  HPF編譯器概覽
 14. 3  基本循環(huán)的編譯技術(shù)
 14. 3. 1  分布信息的傳播和分析
 14. 3. 2  迭代的劃分
 14. 3. 3  通信生成
 14. 4  優(yōu)化
 14. 4. 1  通信向量化
 14. 4. 2  重疊通信和計算
 14. 4. 3  對齊和復制
 14. 4. 4  流水
 14. 4. 5  一般依賴環(huán)的識別
 14. 4. 6  存儲管理
 14. 4. 7  處理多個維
 14. 5  HPF的過程間優(yōu)化
 14. 6  小結(jié)
 14. 7  實例研究
 14. 8  歷史評述與參考文獻
 習題
 附錄  Fortran 90基礎
 參考文獻
 索引

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號