OpenCL異構計算 ( 簡體 字) |
作者:Benedict Gaster等 | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:清華大學出版社 | 3dWoo書號: 32716 詢問書籍請說出此書號!【缺書】 NT售價: 380 元 |
出版日:5/9/2012 |
頁數:276 |
光碟數:0 |
|
站長推薦:  |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787302286851 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:
陳國良 中國科學院院士
我國超級計算機研制近幾年奮起直追。2009年,天河一號(TH-1)的發布,使得我國成為繼美國之后世界上第二個能夠獨立研制千萬億次峰值超級計算機的國家。2010年9月發布的國產天河一號A千萬億次超級計算機通過采用先進的CPU+GPGPU的異構混合加速體系架構,以2.56Pflops的Linpack性能奪取2010年11月國際HPC TOP500排行榜的第一名,創下中國國產超級計算機歷史上首次奪得世界冠軍的佳績。同時,我國安裝的超級計算機的上榜數量也首次超越日本和歐盟,排名世界第二,僅次于美國。目前,中國HPC TOP100排行榜中機器的平均Linpack性能為120Tflops,是2010年63Tflops的1.9倍,而國際上平均性能接近120Tflops的時間為 2011 年 6 月(117.76Tflops),我國與世界平均性能差距從原來保持了很久的一年半差距,快速縮短為半年的差距!這標志著我國超級計算機系統的整機集成水平步入國際領先行列,且在一些核心硬件技術上取得了關鍵性的突破。2011年底的國際HPC TOP500排行榜中,前十名中的第二、四和第五名都采用了GPGPU異構加速體系架構——500臺系統里有39臺系統采用了GPGPU異構加速,由此可見,異構計算作為一種新的計算機體系架構逐漸成為主流。 每一次超級計算機體系結構的變化,都會伴隨著并行程序設計環境和語言的進化。為了高效地為分布式存儲和共享存儲的并行計算機編寫并行程序,工業界在總結眾多各類并行語言的優點的基礎上,分別提出了目前已經被廣泛接受和使用的并行程序開發環境MPI和OpenMP工業界標準。這兩個標準并行程序設計環境和語言的提出和推廣普及,極大地提升了大規模并行應用軟件的開發效率,降低了開發成本,確保了軟件在不同廠家機器之間的可移植性和高性能。隨著當前國際上主流體系架構逐漸向異構混合并行的轉變,如何為這一新體系架構設計高效的且被廣為接受的工業界標準并行程序開發環境和語言,成為一個迫切需要解決的問題。 OpenCL正是在這一背景下由Khronos國際組織提出,并得到眾多硬件和軟件廠商的支持,成為工業界異構計算的標準語言。雖然目前比較流行的異構計算的語言是CUDA語言,但是,我們相信,隨著時間的推移,正如當年早期最流行的PVM分布式存儲并行環境逐漸退出歷史舞臺從而讓位于工業界標準MPI一樣,OpenCL在融合了CUDA語言眾多優點的基礎上,可能逐漸成為異構計算的工業界新標準語言,MPI+OpenMP+OpenCL這樣的并行編程環境亦有望成為未來的主流并行編程模型之一。 該書的翻譯很及時,是目前國內第一本全面介紹OpenCL的中文圖書。書中既有對OpenCL基本概念和原理的介紹,又有結合具體實例和特定硬件體系架構的深入淺出的講解,還探討了OpenCL的一些擴展功能,是一本難得的全面介紹OpenCL的教科書。相信該書的出版必將為廣大異構計算愛好者和用戶提供有價值的參考,并對推動異構計算在我國的普及起著重要的作用。
|
內容簡介: OpenCL異構計算》提供OpenCL的第一手資料,詳盡闡述了如何在異構環境下進行并行編程。第1章首先介紹如何在并行系統下編程,定義異構編程需要理解的概念。第2∼4章循序漸進地介紹OpenCL的基本架構。第5章和第6章對這些概念加以擴展,旨在幫助讀者更好地理解。第7~10章提供4個更復雜的案例學習,讓讀者理解到OpenCL具有廣泛的應用。第11~13章鎖定高級主題展開討論。 本書可幫助學生和研究人員更好地理解通用異構計算(尤其是OpenCL提供的解決方案),尤其是適合不同經驗水平的學生,可以作為OpenCL課程的教材或其他課程的參考,例如并行編程課程和高級課程。
|
目錄:第1章 并行編程入門 1 引言 1 OpenCL 1 本書目標 2 并行思維 2 并發編程模型和并行編程模型 6 線程和共享內存 9 消息傳遞通信 9 不同的并行粒度 10 數據共享和同步 11 本書結構 11 參考文獻 12 擴展閱讀和相關網站 13 第2章 OpenCL簡介 15 引言 15 OpenCL標準 15 OpenCL 規范 15 kernel和OpenCL執行模型 16 平臺和設備 19 主機-設備交互 19 執行環境 21 上下文 22 命令隊列 22 事件 23 內存對象 23 flush命令和finish命令 26 新建一個OpenCL程序對象 26 OpenCL的kernel 27 內存模型 29 編寫kernel 31 向量相加實例的完整代碼 32 小結 39 參考文獻 39 第3章 OpenCL設備架構 41 引言 41 硬件權衡 41 性能隨頻率的提升及其限制 43 超標量執行 44 VLIW 44 SIMD和向量處理 47 硬件多線程 48 多核架構 51 集成:片上系統和APU 53 高速緩存層次和內存系統 54 架構設計空間 55 CPU設計 56 GPU體系結構 60 APU和類APU的設計 63 小結 64 參考文獻 65 第4章 OpenCL基本實例 67 引言 67 應用實例 67 簡單的矩陣相乘 67 圖像卷積實例 77 小結 85 第5章 OpenCL的并發與執行模型 87 引言 87 kernel,work_item,workgroup和 執行域 87 OpenCL同步:kernel,fence和barrier 90 隊列與全局同步 94 OpenCL內存一致性 96 事件 96 命令barrier與marker 108 主機端內存模型 109 buffer對象 110 image對象 113 設備端內存模型 115 設備端寬松的內存一致性 116 全局內存 117 本地內存 119 常量內存 121 私有內存 122 小結 122 第6章 OpenCL在CPU/GPU 平臺上的實現 123 引言 123 OpenCL在AMD PHENOM II X6上的 實現 123 OpenCL在AMD RADEON HD6970 GPU上的實現 128 多線程和內存系統 130 基于clause的SIMD執行 132 資源分配 137 OpenCL的內存性能 139 OpenCL全局內存 139 本地內存——軟件管理的cache 142 小結 148 參考文獻 149 第7章 OpenCL案例學習1:卷積 151 引言 151 計算卷積的kernel 151 選擇合適的workgroup大小 151 將數據緩存到本地內存 154 執行卷積 160 小結 161 代碼清單 162 主機端代碼 162 kernel代碼 166 參考文獻 171 第8章 OpenCL案例學習2: 視頻處理 173 引言 173 獲得視頻幀 173 CPU上的解碼 174 在GPU上解碼視頻 175 在OpenCL中處理一個視頻 179 在多個視頻上處理多個不同effect 180 事件鏈 180 最終輸出顯示到屏幕 181 OpenCL/OpenGL協同工作能力 181 小結 184 第9章 OpenCL案例學習3: 直方圖 185 引言 185 選擇適量的work-group 185 選擇最優的work-group大小 186 全局內存訪存優化 187 使用原子操作計算局部直方圖 189 本地內存訪存優化 190 局部直方圖的規約 192 全局規約 193 完整的kernel代碼 193 性能和小結 196 第10章 OpenCL案例學習4: 混合粒子模擬 197 引言 197 計算概覽 197 GPU實現 200 創建buffer 200 構造加速結構 201 計算碰撞 201 合成 202 CPU實現 202 負載均衡 203 性能和小結 204 生成均勻網格的kernel代碼 205 粒子模擬的kernel代碼 206 第11章 OpenCL擴展 211 引言 211 擴展機制概覽 211 設備拆分 214 雙精度 225 參考文獻 233 第12章 OpenCL的性能剖析和 調試 235 引言 235 基于事件的剖析 236 AMD APP Profiler 238 收集OpenCL程序軌跡 239 收集OpenCL GPU Kernel性能 計數器 242 AMD APP KernelAnalyzer 243 演示AMD APP Profiler 245 啟動AMD APP Profiler 245 使用應用程序的軌跡數據 以發現性能瓶頸 245 使用GPU性能計數器發現kernel的 性能瓶頸 247 調試OpenCL應用程序 248 gDEBugger概覽 249 使用gDEBugger調試并行OpenCL 應用程序 249 AMD printf擴展 251 小結 253 第13章 WebCL 255 引言 255 框架設計 256 WebCL 實驗性實現 257 Firefox擴展 257 連接JavaScript和OpenCL 258 WebCL動手練習 260 Web照片編輯器 264 討論 266 小結 268 參考文獻 268 擴展閱讀和相關網站 269 索引 271
|
序: |