 |
-- 會員 / 註冊 --
|
|
|
|
OpenCL異構計算(第2版) ( 簡體 字) |
作者:Benedict R. Gaster, Lee Howes, David R. Kaeli, Perhaad Mistry, Dana Schaa, | 類別:1. -> 教材 -> 數位影像處理 |
譯者:張云泉、張先軼、賈海鵬、李焱、顏深根 |
出版社:清華大學出版社 | 3dWoo書號: 36461 詢問書籍請說出此書號!【缺書】 【不接受訂購】 |
出版日:8/13/2013 |
頁數:290 |
光碟數:0 |
|
站長推薦:  |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
【不接受訂購】 | ISBN:9787302333951 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:我們身處異構世界 我們所在的世界本質上是異構的。如此多元的豐富性和細節難以用語言描述。與此同時,廣泛不同的實體針對具體任務和環境進行的優化帶來了某種程度的復雜性和相互影響。 在計算領域,豐富的異構計算系統有利于程序員選擇最佳的硬件架構來執行手邊的任務,或者選擇恰當的任務來優化使用特定的硬件架構。在解決包含各種不同任務的計算問題時,異構系統在這兩方面的靈活性表現得尤為明顯。最近,計算機設計社區出現了一股構建異構系統的熱潮。市面上正在涌現出一些新型的計算系統,它們由不同類別的架構組成。但這一進程的發展受阻,因為缺乏一個標準化的編程環境來統管通用框架內呈多樣化態勢的各種資源。 有關OpenCL OpenCL的發展旨在減輕程序員為異構系統編寫應用程序的負擔。OpenCL迎合了當前為給定架構上增加處理器核數這一發展趨勢。OpenCL框架能夠運行在多核CPU、DSP、FPGA、GPU以及異構加速處理單元上。該架構提供了廣泛的方法來抽取內存系統和指令流中的并行性和效率。 OpenCL框架的多樣性為設計人員提供了解決問題的方法——如果采用OpenCL規范進行設計,該解決方案的更新便能夠與硬件架構的種類增多和發展保持同步。OpenCL標準中抽象和接口允許程序員使應用程序無縫地運行在一個或多個廠商的多種異構設備上。 本書的目標 目前為止,沒有一本合適的教材能夠幫助程序員和軟件工程師利用OpenCL編程標準所具有的能力和靈活性。因此,我們嘗試填補空白。為了這個目標,我們不想編寫一本語法手冊——有大量好的資源,程序員可以從中找開完整、最新的OpenCL語法描述。 本書試圖向開發者或學生說明如何利用OpenCL框架來構建有趣且有用的應用。我們通過提供大量實際應用案例來展示該編程標準具有的魅力。 我們希望讀者能夠擁抱這個新的編程框架,并探究它為異構系統帶來的所有好處。我們歡迎對本書提出改進意見,同時也希望本書能夠幫助你構建下一個異構應用程序。 致謝 感謝Manju Hegde提議編寫本書。Jay Owen負責聯系參與編寫本書的各方,Morgan Kaufmann出版社的Todd Green負責本項目的管理和進度提醒等。 在技術方面,我們感謝Jay Cornwall認真負責地為本書文字編輯了早期版本,我們感謝Takahiro Harada, Justin Hensley, Budirijanto Purnomo, Frank Swehosky和Dongping Zhang,他們分別為幾個章節做出了重要的貢獻。尤其是如果沒有他們的幫助,本書很難擁有如此多的研究實例。
|
內容簡介:《OpenCL異構計算》講解了OpenCL和如何為復雜的異構系統(多核處理器、GPU和APU)進行并行編程。OpenCL是為支持多平臺設計的,受行業廣泛支持,有助于幫助讀者為異構環境編寫高性能應用程序。 本書由并行計算和OpenCL社區中的領頭人所撰寫,可幫助讀者體驗OpenCL從而了解大量基礎的并行算法。主題涉及內存空間、優化技術、圖形的互操作、性能擴展,調試和性能剖析等。此外,本書第2版新增了案例分析和實例,清楚闡述了高性能算法、異構系統的分布式運行機制、嵌入式域特定語言等。 本書讀者對象為軟件工程師、程序員、硬件工程師、高年級本科生/研究生,可供并行編程課程使用,包含有詳細的案例,附有額外的網上練習和其他支持材料。
本書特色 第2版根據OpenCL 1.2最新開發動態進行修訂,包括新的架構和功能。 新增主題有圖像處理、數據管理和OpenCL語言與C/C++之外其他語言(比如Haskell)的權衡 解釋OpenCL并行編程的原理和策略,從理解四大抽象模型開始,一直介紹到測試和調試完整的應用 覆蓋圖像處理、Web插件、粒子模擬、視頻編輯和性能優化等主題 展示OpenCL如何映射到目標體系結構,并解釋一些映射到各種體系結構的折衷方案 提出一系列基礎編程技術,并通過若干個實例和案例分析來展示針對不同硬件平臺的OpenCL擴展
|
目錄:第1章 并行編程入門 1 引言 1 OpenCL 1 本書目標 2 并行思維 2 并發編程模型和并行編程模型 6 線程和共享內存 9 消息傳遞通信 9 不同粒度的并行 10 數據共享和同步 11 本書結構 11 參考文獻 13 擴展閱讀和相關網站 13 第2章 OpenCL簡介 15 引言 15 OpenCL標準 15 OpenCL 規范 15 kernel和OpenCL執行模型 16 平臺和設備 19 主機-設備之間的交互 19 執行環境 22 上下文 22 命令隊列 22 事件 23 內存對象 24 flush命令和finish命令 26 新建一個OpenCL程序對象 26 OpenCL的kernel 27 內存模型 29 寫kernel 31 向量相加實例的完整代碼 32 使用C++封裝API實現向量相加 35 小結 38 參考文獻 38 第3章 OpenCL設備架構 39 引言 39 硬件權衡 39 性能隨頻率的提升及其限制 41 超標量執行 42 VLIW 42 SIMD和向量處理 45 硬件多線程 46 多核架構 49 集成:片上系統和APU 51 高速緩存層次和內存系統 52 架構設計空間 53 CPU設計 55 GPU體系結構 58 APU和類APU的設計 60 小結 62 參考文獻 63 第4章 OpenCL基本實例 65 引言 65 應用實例 65 簡單的矩陣相乘 65 圖像旋轉實例 71 圖像卷積實例 75 編譯OpenCL主機端應用 82 小結 83 第5章 OpenCL的并發與執行模型 85 引言 85 kernel,work_item,workgroup和執行域 85 OpenCL同步:kernel,fence和barrier 88 隊列與全局同步 92 OpenCL的內存一致性 94 事件 94 命令barrier與marker 106 主機端內存模型 107 buffer對象 108 image對象 111 設備端內存模型 113 設備端寬松的內存一致性 114 全局內存 115 本地內存 117 常量內存 119 私有內存 120 小結 120 第6章 OpenCL在CPU/GPU平臺上的實現 121 引言 121 OpenCL在AMD BULLDOZER上的實現 121 OpenCL在AMD RADEON HD7970 GPU上的實現 126 多線程和內存系統 128 HD7970架構上的指令執行 130 VLIW執行的改進 134 資源分配 135 OpenCL的內存性能 136 OpenCL全局內存 136 本地內存——軟件管理的緩存 140 小結 146 參考文獻 146 第7章 數據管理 147 引言 147 內存管理 147 獨立環境中(使用獨立GPU)的數據傳輸 149 優化 149 緩存區 150 共享內存環境中的數據存儲 151 本地內存 153 緩存的系統內存 154 非緩存系統內存 154 應用實例——workgroup 歸約 155 使用獨立GPU設備 156 使用APU 158 參考文獻 159 第8章 OpenCL案例學習:卷積 161 引言 161 計算卷積的kernel 161 選擇合適的workgroup大小 161 將數據緩存到本地內存 164 執行卷積 170 小結 171 代碼清單 172 主機端代碼 172 kernel代碼 176 參考文獻 181 第9章 OpenCL案例學習:直方圖 183 引言 183 選擇適量的workgroup 183 選擇最優的workgroup大小 184 全局內存訪存優化 185 使用原子操作計算局部直方圖 187 本地內存訪存優化 188 局部直方圖的歸約 190 全局歸約 191 完整的kernel代碼 191 性能和小結 194 第10章 OpenCL案例學習:混合粒子模擬 195 引言 195 計算概覽 196 GPU實現 198 創建buffer 198 構造加速結構 199 計算碰撞 199 合成 200 CPU實現 200 負載均衡 201 性能和小結 202 生成均勻網格的kernel代碼 203 粒子模擬的kernel代碼 204 第11章 OpenCL擴展 209 引言 209 擴展機制概覽 209 設備拆分 212 雙精度 223 參考文獻 231 第12章 在其他語言中使用OpenCL 233 引言 233 C和C++之外 233 Haskell Opencl 235 模塊結構 237 環境 237 引用計數 237 平臺和設備 238 運行環境 239 小結 241 參考文獻 242 第13章 OpenCL的性能剖析和調試 243 引言 243 基于事件的剖析 244 AMD APP Profiler 246 收集OpenCL程序軌跡 247 收集OpenCL GPU Kernel性能計數器 250 AMD APP KernelAnalyzer 251 演示AMD APP Profiler 253 啟動AMD APP Profiler 253 使用應用程序的軌跡數據以發現性能瓶頸 253 使用GPU性能計數器發現kernel的性能瓶頸 255 調試OpenCL應用程序 256 gDEBugger概覽 257 使用gDEBugger調試并行OpenCL應用程序 257 AMD printf擴展 259 小結 261 第14章 某圖像分析應用的性能調優 263 引言 263 算法描述 264 CPU多線程實現的OpenCL移植 266 熱點分析 267 kernel開發及靜態分析 269 性能優化 270 Kernel Occupancy 271 workgroup大小的影響 275 向量寄存器(VGPR)和LDS的影響 281 能耗和性能分析 283 小結 284 參考文獻 284 索引 285
|
序: |
|