[www.ed2k.online]下載基地為您提供軟件、遊戲、圖書、教育等各種資源的ED2K電驢共享下載和MAGNET磁力鏈接下載。
設為首頁
加入收藏
首頁 圖書資源 軟件資源 游戲資源 教育資源 其他資源
 電驢下載基地 >> 图书资源 >> 計算機與網絡 >> 《現代體系結構的優化編譯器》(Optimizing Compilers for Modern Architectures,A Dependence-Based Approach )((美)Randy Allen,Ken Kennedy)掃描版[PDF]
《現代體系結構的優化編譯器》(Optimizing Compilers for Modern Architectures,A Dependence-Based Approach )((美)Randy Allen,Ken Kennedy)掃描版[PDF]
下載分級 图书资源
資源類別 計算機與網絡
發布時間 2017/7/10
大       小 -
《現代體系結構的優化編譯器》(Optimizing Compilers for Modern Architectures,A Dependence-Based Approach )((美)Randy Allen,Ken Kennedy)掃描版[PDF] 簡介: 中文名 : 現代體系結構的優化編譯器 原名 : Optimizing Compilers for Modern Architectures,A Dependence-Based Approach 作者 : (美)Randy Allen,Ken Kennedy 資源格式 : PDF 版本 : 掃描版 出版社 : Morgan Kaufmann 書號 : 1558602860
電驢資源下載/磁力鏈接資源下載:
全選
"《現代體系結構的優化編譯器》(Optimizing Compilers for Modern Architectures,A Dependence-Based Approach )((美)Randy Allen,Ken Kennedy)掃描版[PDF]"介紹
中文名: 現代體系結構的優化編譯器
原名: Optimizing Compilers for Modern Architectures,A Dependence-Based Approach
作者: (美)Randy Allen,Ken Kennedy
資源格式: PDF
版本: 掃描版
出版社: Morgan Kaufmann
書號: 1558602860
發行時間: 2001年
地區: 美國
語言: 英文
簡介:

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

目錄:
第1章 高性能體系結構對編譯器的挑戰
1.1 概述和目標
1.2 流水線
1.2.1 流水線指令部件
1.2.2 流水線執行部件
1.2.3 並行功能部件
1.2.4 標量流水線編譯
1.3 向量指令
1.3.1 向量硬件概述
1.3.2 向量流水線編譯
1.4 超標量處理器和VLIW處理器
1.4.1 多發射指令部件
1.4.2 多發射處理器的編譯
1.5 處理器並行性
1.5.1 處理器並行性概述
1.5.2 異步並行性的編譯
1.6 存儲層次結構
1.6.1 存儲系統概述
1.6.2 存儲層次結構的編譯
1.7 實例研究:矩陣乘法
1.8 先進編譯技術
1.8.1 依賴
1.8.2 變換
1.9 小結
1.10 實例研究
1.11 歷史評述與參考文獻
習題
第2章 依賴:理論與實踐
2.1 引言
2.2 依賴及其性質
2.2.1 存-取分類
2.2.2 循環內的依賴
2.2.3 依賴和變換
2.2.4 距離向量和方向向量
2.2.5 循環攜帶依賴和循環無關依賴
2.3 簡單的依賴測試
2.4 並行化和向量化
2.4.1 並行化
2.4.2 向量化
2.4.3 一個先進的向量化算法
2.5 小結
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 小結
3.8 實例研究
3.9 歷史評述與參考文獻
習題
第4章 初等變換
4.1 引言
4.2 信息需求
4.3 循環正規化
4.4 數據流分析
4.4.1 定義-使用鏈
4.4.2 死代碼消除
4.4.3 常數傳播
4.4.4 靜態單賦值形式
4.5 歸納變量暴露
4.5.1 前向表達式替換
4.5.2 歸納變量替換
4.5.3 驅動替換過程
4.6 小結
4.7 實例研究
4.8 歷史評述與參考文獻
習題
第5章 提高細粒度並行性
5.1 引言
5.2 循環交換
5.2.1 循環交換的安全性
5.2.2 循環交換的有利性
5.2.3 循環交換和向量化
5.3 標量擴展
5.4 標量和數組重命名
5.5 節點分裂
5.6 歸約識別
5.7 索引集分裂
5.7.1 阈值分析
5.7.2 循環剝離
5.7.3 基於區域的分裂
5.8 運行時符號解析
5.9 循環傾斜
5.10 各種變換的集成
5.11 實際機器的復雜性
5.12 小結
5.13 實例研究
5.13.1 PFC
5.13.2 ArdentTitan編譯器
5.13.3 向量化的性能
5.14 歷史評述與參考文獻
習題
第6章 開發粗粒度並行性
6.1 引言
6.2 單循環的處理方法
6.2.1 私有化
6.2.2 循環分布
6.2.3 對齊
6.2.4 代碼復制
6.2.5 循環合並
6.3 緊嵌循環套
6.3.1 為並行化的循環交換
6.3.2 循環選擇
6.3.3 循環反轉
6.3.4 為並行化的循環傾斜
6.3.5 模變換
6.3.6 基於有利性的並行化方法
6.4 非緊嵌循環套
6.4.1 多層循環合並
6.4.2 一個並行代碼生成算法
6.5 一個擴充的例子
6.6 並行性的封裝
6.6.1 循環分段
6.6.2 流水線並行性
6.6.3 調度並行任務
6.6.4 制導的自調度
6.7 小結
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重構
7.3 控制依賴
7.3.1 構造控制依賴
7.3.2 循環中的控制依賴
7.3.3 控制依賴的一個執行模型
7.3.4 控制依賴在並行化中的應用
7.4 小結
7.5 實例研究
7.6 歷史評述與參考文獻
習題
第8章 改進寄存器的使用
8.1 引言
8.2 標量寄存器分配
8.2.1 面向寄存器重用的數據依賴
8.2.2 循環攜帶和循環無關的重用
8.2.3 寄存器分配的例子
8.3 標量替換
8.3.1 依賴圖剪枝
8.3.2 簡單替換
8.3.3 處理循環攜帶依賴
8.3.4 跨越多個迭代的依賴
8.3.5 刪除標量拷貝
8.3.6 緩解寄存器壓力
8.3.7 標量替換算法
8.3.8 實驗數據
8.4 展開和壓緊
8.4.1 展開和壓緊的合法性
8.4.2 展開和壓緊算法
8.4.3 展開和壓緊的效果
8.5 面向寄存器重用的循環交換
8.5.1 對循環交換的考慮
8.5.2 循環交換算法
8.6 面向寄存器重用的循環合並
8.6.1 面向重用的有利的循環合並
8.6.2 面向合並的循環對齊
8.6.3 合並機制
8.6.4 加權循環合並算法
8.6.5 面向寄存器重用的多層循環合並
8.7 改進寄存器使用的變換綜合
8.7.1 決定變換的順序
8.7.2 例子:矩陣乘法
8.8 復雜的循環嵌套
8.8.1 包含if語句的循環
8.8.2 梯形循環
8.9 小結
8.10 實例研究
8.11 歷史評述與參考文獻
習題
第9章 管理高速緩存
9.1 引言
9.2 適合於空間局部性的循環交換
9.3 分塊
9.3.1 非對齊的數據
9.3.2 分塊的合法性
9.3.3 分塊的有利性
9.3.4 一個簡單的分塊算法
9.3.5 帶傾斜的分塊
9.3.6 循環合並和對齊
9.3.7 結合其他變換的分塊
9.3.8 有效性
9.4 復雜循環嵌套中的高速緩存管理
9.4.1 三角形的高速緩存分塊
9.4.2 特殊用途的變換
9.5 軟件預取
9.5.1 一個軟件預取算法
9.5.2 軟件預取的有效性
9.6 小結
9.7 實例研究
9.8 歷史評述與參考文獻
習題
第10章 調度
10.1 引言
10.2 指令調度
10.2.1 機器模型
10.2.2 直線型代碼的圖調度
10.2.3 表調度
10.2.4 蹤跡調度
10.2.5 循環內的調度
10.3 向量部件調度
10.3.1 鏈接
10.3.2 協處理器
10.4 小結
10.5 實例研究
10.6 歷史評述與參考文獻
習題
第11章 過程間分析和優化
11.1 引言
11.2 過程間分析
11.2.1 過程間問題
11.2.2 過程間問題分類
11.2.3 流不敏感副作用分析
11.2.4 流不敏感別名分析
11.2.5 常數傳播
11.2.6 注銷分析
11.2.7 符號化分析
11.2.8 數組區域分析
11.2.9 調用圖的構造
11.3 過程間優化
11.3.1 內聯替換
11.3.2 過程克隆
11.3.3 混合優化
11.4 管理整個程序的編譯
11.5 小結
11.6 實例研究
11.7 歷史評述與參考文獻
習題
第12章 C語言和硬件設計中的依賴
12.1 引言
12.2 優化C語言
12.2.1 指針
12.2.2 命名和結構
12.2.3 循環
12.2.4 作用域和靜態變量
12.2.5 方言
12.2.6 其他問題
12.3 硬件設計
12.3.1 硬件描述語言
12.3.2 優化模擬
12.3.3 綜合優化
12.4 小結
12.5 實例研究
12.6 歷史評述與參考文獻
習題
第13章 編譯數組賦值
13.1 引言
13.2 簡單的標量化
13.3 標量化變換
13.3.1 循環反轉
13.3.2 輸入預取
13.3.3 循環分裂
13.4 多維標量化
13.4.1 多維中的簡單標量化
13.4.2 外層循環預取
13.4.3 用於標量化的循環交換
13.4.4 通用的多維標量化
13.4.5 一個標量化的例子
13.5 對向量機器的考慮
13.6 標量化後的循環交換和合並
13.7 小結
13.8 實例研究
13.9 歷史評述與參考文獻
習題
第14章 編譯高性能Fortran
14.1 引言
14.2 HPF編譯器概覽
14.3 基本循環的編譯技術
14.3.1 分布信息的傳播和分析
14.3.2 迭代的劃分
14.3.3 通信生成
14.4 優化
14.4.1 通信向量化
14.4.2 重迭通信和計算
14.4.3 對齊和復制
14.4.4 流水
14.4.5 一般依賴環的識別
14.4.6 存儲管理
14.4.7 處理多個維
14.5 HPF的過程間優化
14.6 小結
14.7 實例研究
14.8 歷史評述與參考文獻
習題
附錄 Fortran 90基礎
參考文獻
索引 
相關資源:

免責聲明:本網站內容收集於互聯網,本站不承擔任何由於內容的合法性及健康性所引起的爭議和法律責任。如果侵犯了你的權益,請通知我們,我們會及時刪除相關內容,謝謝合作! 聯系信箱:[email protected]

Copyright © 電驢下載基地 All Rights Reserved