注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡行業(yè)軟件及應用OpenCL實戰(zhàn)

OpenCL實戰(zhàn)

OpenCL實戰(zhàn)

定 價:¥89.00

作 者: (美)Matthew,Scarpino 著,陳睿 譯
出版社: 人民郵電出版社
叢編項:
標 簽: 計算機與互聯(lián)網(wǎng) 專用軟件

ISBN: 9787115347343 出版時間: 2014-06-01 包裝: 平裝
開本: 16開 頁數(shù): 406 字數(shù):  

內容簡介

  OpenCL(Open Computing Language)是第一個面向異構系統(tǒng)通用目的并行編程的開放式、免費標準,也是一個統(tǒng)一的編程環(huán)境。OpenCL當前已經(jīng)廣泛應用于各種并行環(huán)境和不同行業(yè)領域?!禣penCL實戰(zhàn)》是OpenCL編程的實踐指南,旨在介紹如何在實際的應用程序中使用OpenGL解決問題。全書共16章和4個附錄。正文可以分為3個部分。第一部分是第1~10章,主要討論的是OpenCL語言及其各項功能。第二部分是第11~14章,展示如何用OpenCL來處理高性能計算領域會經(jīng)常碰到的大規(guī)模任務。最后一部分,包括15章和16章,展示如何用OpenCL來加速OpenGL應用程序的執(zhí)行。附錄A介紹了SDK并演示如何安裝AMD和Nvidia所提供的SDK。附錄B討論了OpenGL和著色器程序開發(fā)的基礎知識。附錄C介紹如何安裝和使用MinGW。附錄D討論了嵌入式OpenCL標準?! 禣penCL實戰(zhàn)》適合于需要在異構平臺和并發(fā)環(huán)境下進行開發(fā)的專業(yè)人士閱讀,要求讀者有一定的C語言基礎?!禣penCL實戰(zhàn)》也適合對OpenCL和高性能計算感興趣的讀者參考。

作者簡介

暫缺《OpenCL實戰(zhàn)》作者簡介

圖書目錄

目 錄
第一部分 OpenCL編程基礎
第1章 OpenCL簡介 3
1.1 OpenCL的來臨 4
1.2 為什么是OpenCL 5
1.2.1 可移植性 5
1.2.2 標準化的向量處理 6
1.2.3 并行編程 7
1.3 類比:OpenCL處理和紙牌游戲 8
1.4 OpenCL應用程序的第一印象 10
1.5 OpenCL標準和擴展 13
1.6 框架和SDK 13
1.7 小結 14
第2章 主機編程:基本的數(shù)據(jù)結構 15
2.1 基本數(shù)據(jù)類型 16
2.2 獲取平臺信息 17
2.2.1 創(chuàng)建平臺結構 17
2.2.2 獲取平臺信息 18
2.2.3 示例代碼:測試平臺的擴展 19
2.3 訪問安裝設備 20
2.3.1 創(chuàng)建設備結構 21
2.3.2 獲取設備信息 22
2.3.3 示例代碼:測試設備擴展 22
2.4 通過上下文管理設備 24
2.4.1 創(chuàng)建上下文 25
2.4.2 獲取上下文信息 26
2.4.3 上下文和引用計數(shù) 27
2.4.4 示例代碼:檢查上下文的引用計數(shù) 27
2.5 將設備代碼保存在程序中 28
2.5.1 創(chuàng)建程序 29
2.5.2 編譯程序 30
2.5.3 獲取程序信息 31
2.5.4 示例代碼:構建來自多個源文件的程序 33
2.6 將函數(shù)打包為內核 34
2.6.1 創(chuàng)建內核 35
2.6.2 獲取內核信息 35
2.6.3 示例代碼:獲取內核信息 36
2.7 用命令隊列保存內核 37
2.7.1 創(chuàng)建命令隊列 38
2.7.2 入列內核執(zhí)行命令 38
2.8 小結 39
第3章 主機編程:數(shù)據(jù)傳輸和數(shù)據(jù)劃分 41
3.1 設置內核參數(shù) 42
3.2 緩存對象 42
3.2.1 分配緩存對象 43
3.2.2 創(chuàng)建子緩存對象 45
3.3 圖像對象 46
3.3.1 創(chuàng)建圖像對象 46
3.3.2 獲取圖像對象的相關信息 49
3.4 獲取緩存對象的相關信息 49
3.5 內存對象的傳輸命令 51
3.5.1 讀/寫數(shù)據(jù)傳輸 52
3.5.2 映射內存對象 55
3.5.3 內存對象間的數(shù)據(jù)復制 57
3.6 數(shù)據(jù)劃分 59
3.6.1 循環(huán)和工作項 60
3.6.2 工作項的大小和偏移量 61
3.6.3 一個簡單的一維例子 62
3.6.4 工作組和計算單元 63
3.7 小結 64
第4章 內核編程:數(shù)據(jù)類型和設備內存 66
4.1 內核編程簡介 67
4.2 標量數(shù)據(jù)類型 68
4.2.1 訪問雙精度數(shù)據(jù)類型 69
4.2.2 字節(jié)順序 70
4.3 浮點計算 71
4.3.1 浮點數(shù)據(jù)類型 71
4.3.2 雙轉度數(shù)據(jù)類型 72
4.3.3 half數(shù)據(jù)類型 73
4.3.4 檢查IEEE-754的兼容性 73
4.4 向量數(shù)據(jù)類型 75
4.4.1 首選向量寬度 76
4.4.2 初始化向量 78
4.4.3 讀取和修改向量分量 78
4.4.4 字節(jié)順序和內存訪問 81
4.5 OpenCL設備模型 83
4.5.1 內核模型類比的第一部分:學校中學數(shù)學的學生 83
4.5.2 設備模型類比的第二部分:設備上的工作項 84
4.5.3 程序中的地址空間 86
4.5.4 內存對齊 88
4.6 局部和私有內核參數(shù) 88
4.6.1 局部參數(shù) 89
4.6.2 私有參數(shù) 89
4.7 小結 90
第5章 內核編程:運算符和函數(shù) 92
5.1 運算符 93
5.2 工作組和工作項函數(shù) 95
5.2.1 維度和工作項 96
5.2.2 工作組 97
5.2.3 示例應用 97
5.3 數(shù)據(jù)傳輸操作 98
5.3.1 加載和保存同類型的數(shù)據(jù) 98
5.3.2 將標量數(shù)組加載保存到向量中 99
5.3.3 將向量保存到標量數(shù)組中 100
5.4 浮點型函數(shù) 100
5.4.1 算術運算函數(shù)和取舍函數(shù) 100
5.4.2 比較函數(shù) 102
5.4.3 指數(shù)函數(shù)和對數(shù)函數(shù) 103
5.4.4 三角函數(shù) 103
5.4.5 其他類型的浮點函數(shù) 105
5.5 整數(shù)函數(shù) 106
5.5.1 加法函數(shù)和減法函數(shù) 106
5.5.2 乘法運算 108
5.5.3 其他類型的整數(shù)函數(shù) 109
5.6 混洗和選擇函數(shù) 111
5.6.1 混洗函數(shù) 111
5.6.2 選擇函數(shù) 113
5.7 向量測試函數(shù) 115
5.8 幾何函數(shù) 116
5.9 小結 118
第6章 圖像處理 120
6.1 圖像對象和采樣器 121
6.1.1 主機上的圖像對象:cl_mem 121
6.1.2 主機上的采樣器;cl_sampler 122
6.1.3 設備上的圖像對象:image2d_t和image3d_t 125
6.1.4 設備上的采樣器:sampler_t 126
6.2 圖像處理函數(shù) 126
6.2.1 圖像讀取函數(shù) 127
6.2.2 寫圖像函數(shù) 128
6.2.3 圖像信息函數(shù) 129
6.2.4 一個簡單的例子 130
6.3 圖像放縮和插值 131
6.3.1 最鄰近插值 131
6.3.2 雙線性插值 132
6.3.3 用OpenCL編程放大圖像 134
6.4 小結 135
第7章 事件、性能分析及同步化 136
7.1 主機提醒事件 137
7.1.1 將事件和命令關聯(lián) 137
7.1.2 將事件和回調函數(shù)作關聯(lián) 138
7.1.3 主機提醒的例子 139
7.2 命令同步事件 140
7.2.1 等待列表和命令事件 141
7.2.2 等待列表和用戶事件 142
7.2.3 額外的命令同步函數(shù) 144
7.2.4 獲取和事件關聯(lián)的數(shù)據(jù) 146
7.3 性能分析事件 149
7.3.1 配置性能分析命令 149
7.3.2 對數(shù)據(jù)傳輸進行性能分析 151
7.3.3 對數(shù)據(jù)劃分進行分析 152
7.4 工作項同步化 154
7.4.1 障礙和柵欄 155
7.4.2 原子操作 156
7.4.3 原子命令和互斥 158
7.4.4 異步數(shù)據(jù)傳輸 160
7.5 小結 161
第8章 用C++開發(fā) 163
8.1 初步了解 164
8.1.1 向量和字符串 164
8.1.2 異常 165
8.2 創(chuàng)建內核 166
8.2.1 平臺、設備以及上下文 166
8.2.2 程序和內核 169
8.3 內核參數(shù)和內存對象 172
8.3.1 內存對象 173
8.3.2 通用數(shù)據(jù)參數(shù) 177
8.3.3 局部內存參數(shù) 178
8.4 命令隊列 179
8.4.1 創(chuàng)建CommandQueue對象 179
8.4.2 入列內核執(zhí)行命令 179
8.4.3 讀寫命令 181
8.4.4 內存映射和復制命令 183
8.5 事件處理 185
8.5.1 主機提醒 185
8.5.2 命令同步化 187
8.5.3 性能分析事件 188
8.5.4 另外的事件函數(shù) 189
8.6 小結 190
第9章 用Java和Python來開發(fā) 192
9.1 Aparapi 193
9.1.1 Aparapi安裝 193
9.1.2 Kernel類 194
9.1.3 工作項和工作組 195
9.2 JavaCL 197
9.2.1 JavaCL安裝 198
9.2.2 JavaCL開發(fā)概述 198
9.2.3 用JavaCL來創(chuàng)建內核 199
9.2.4 設定內核參數(shù)以及入列命令 202
9.3 PyOpenCL 206
9.3.1 PyOpenCL安裝和許可 206
9.3.2 PyOpenCL開發(fā)概述 207
9.3.3 用PyOpenCL創(chuàng)建內核 207
9.3.4 設置參數(shù)和執(zhí)行內核 211
9.4 小結 215
第10章 通用編程原則 217
10.1 全局大小和局部大小 218
10.1.1 找出工作組大小的上限值 218
10.1.2 測試內核和設備 220
10.2 數(shù)值歸并 221
10.2.1 OpenCL的歸并算法 221
10.2.2 使用向量提升歸并運算的速度 224
10.3 工作組間的同步化 225
10.4 設計高性能內核的10條技巧 227
10.5 小結 229
第二部分 用OpenCL來編程實現(xiàn)實際的算法
第11章 歸并與排序 233
11.1 MapReduce 234
11.1.1 MapReduce簡介 234
11.1.2 MapReduce和OpenCL 236
11.1.3 MapReduce例子:字符串查找 238
11.2 雙調排序 240
11.2.1 理解雙調排序算法 240
11.2.2 用OpenCL來實現(xiàn)雙調排序 243
11.3 基數(shù)排序 249
11.3.1 理解基數(shù)排序 250
11.3.2 用向量實現(xiàn)基數(shù)排序 250
11.4 小結 252
第12章 矩陣和QR分解 253
12.1 矩陣轉置 254
12.1.1 矩陣簡介 254
12.1.2 矩陣轉置的理論和實現(xiàn) 254
12.2 矩陣乘法 257
12.2.1 矩陣乘法理論 257
12.2.2 用OpenCL編程實現(xiàn)矩陣乘法 258
12.3 Householder變換 259
12.3.1 向量投影 260
12.3.2 向量反射 261
12.3.3 外積和Householder矩陣 262
12.3.4 用OpenCL編程實現(xiàn)向量反射 263
12.4 QR分解 264
12.4.1 計算Householder向量和R矩陣 265
12.4.2 計算Householder矩陣和矩陣Q 266
12.4.3 用OpenCL編程實現(xiàn)QR分解 267
12.5 小結 270
第13章 稀疏矩陣 272
13.1 差分方程和稀疏矩陣 273
13.2 稀疏矩陣的存儲以及Harwell-Boeing數(shù)據(jù)集 274
13.2.1 Harwell-Boeing數(shù)據(jù)集簡介 274
13.2.2 訪問Matrix Market文件中的數(shù)據(jù) 275
13.3 最速下降法 278
13.3.1 正定矩陣 279
13.3.2 最速下降法理論 279
13.3.3 用OpenCL編程實現(xiàn)SD算法 281
13.4 共軛梯度法 283
13.4.1 正交化和共軛 283
13.4.2 正交化和GRAM-SCHMIDT法 283
13.4.3 共軛梯度法 285
13.5 小結 287
第14章 信號處理和快速傅里葉變換 289
14.1 頻率分析簡介 289
14.2 離散傅里葉變換 291
14.2.1 DFT背后的理論 292
14.2.2 OpenCL和DFT 298
14.3 快速傅里葉變換 299
14.3.1 DFT的三條性質 299
14.3.2 構建快速傅里葉變換 302
14.3.3 用OpenCL來實現(xiàn)FFT 306
14.4 小結 311
第三部分 用OpenCL來加速OpenGL
第15章 將OpenCL和OpenGL結合 315
15.1 在OpenGL和OpenCL之間共享數(shù)據(jù) 316
15.1.1 創(chuàng)建OpenCL上下文 317
15.1.2 在OpenGL和OpenCL之間共享數(shù)據(jù) 319
15.1.3 同步化對共享數(shù)據(jù)的訪問 322
15.2 獲取信息 323
15.2.1 獲取OpenGL對象和紋理信息 323
15.2.2 獲取OpenGL上下文的相關信息 324
15.3 基本的互操作例子 325
15.3.1 初始化OpenGL操作 325
15.3.2 初始化OpenCL操作 326
15.3.3 創(chuàng)建數(shù)據(jù)對象 327
15.3.4 執(zhí)行內核 327
15.3.5 渲染圖形 328
15.4 互操作和動畫 329
15.4.1 確定頂點數(shù)據(jù) 329
15.4.2 動畫和顯示 330
15.4.3 執(zhí)行內核 331
15.5 小結 332
第16章 紋理和渲染緩存 334
16.1 圖像濾波 335
16.1.1 高斯模糊 337
16.1.2 圖像銳化 337
16.1.3 圖像浮雕化 338
16.2 用OpenCL來對紋理濾波 339
16.2.1 init_gl函數(shù) 339
16.2.2 init_cl函數(shù) 339
16.2.3 configure_shared_data函數(shù) 340
16.2.4 execute_kernel函數(shù) 341
16.2.5 display函數(shù) 342
16.3 小結 343
附錄A 安裝和使用軟件開發(fā)包 344
A.1 了解OpenCL SDK 344
A.1.1 檢查設備的兼容性 344
A.1.2 OpenCL頭文件和庫文件 345
A.2 Windows上的OpenCL 347
A.2.1 在Windows上安裝AMD顯卡驅動 347
A.2.2 用AMD顯卡來編譯Windows應用程序 349
A.2.3 在Windows上安裝Nvidia的顯卡驅動 349
A.2.4 用Nvidia顯卡來編譯Windows應用程序 351
A.3 Linux上的OpenCL 351
A.3.1 在Linux上安裝AMD的顯卡驅動 351
A.3.2 在Linux上安裝Nvidia顯卡驅動 352
A.3.3 在Linux上編譯OpenCL應用程序 354
A.4 在Mac OS上安裝OpenCL 355
A.5 小結 356
附錄B 用OpenGL作實時渲染 357
B.1 安裝OpenGL 358
B.1.1 在Windows上安裝OpenGL 359
B.1.2 在Linux上安裝OpenGL 359
B.1.3 在Mac OS上安裝OpenGL 360
B.2 在主機上開發(fā)OpenGL應用程序 360
B.2.1 將數(shù)據(jù)放到頂點緩存對象(VBO)之中 361
B.2.2 配置頂點屬性 363
B.2.3 編譯和部署著色器 365
B.2.4 啟動渲染過程 367
B.3 開發(fā)著色器程序 369
B.3.1 著色器編程簡介 370
B.3.2 頂點著色器 373
B.3.3 片段著色器 374
B.4 用GLUT來創(chuàng)建OpenGL窗口 375
B.4.1 配置和創(chuàng)建窗口 375
B.4.2 事件處理 376
B.4.3 顯示窗口 377
B.5 將OpenGL和GLUT結合 379
B.5.1 GLUT/OpenGL初始化 379
B.5.2 設置視窗(viewport) 381
B.5.3 渲染模型 381
B.6 添加紋理 382
B.6.1 在主機應用程序中創(chuàng)建紋理 383
B.6.2 頂點著色器中的紋理映射 386
B.6.3 在片段著色器中使用紋理 387
B.7 小結 388
附錄C 面向Windows和OpenCL的最簡GNU 390
C.1 在Windows下安裝MinGW 390
C.1.1 獲取并運行圖形安裝工具 391
C.1.2 在MinGW下安裝新工具 393
C.2 編譯MinGW可執(zhí)行程序 394
C.2.1 用MinGW編譯HelloWorld! 394
C.2.2 GNU編譯器 395
C.3 Makefiles 396
C.3.1 GNU makefile的結構 396
C.3.2 目標和偽目標 399
C.3.3 簡單的makefile例子 401
C.4 編譯OpenCL應用程序 401
C.5 小結 403
附錄D Appendix D移動設備上的OpenCL 404
D.1 數(shù)值處理 404
D.2 圖像處理 405
D.3 小結 406

本目錄推薦

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