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

OpenCL實(shí)戰(zhàn)

OpenCL實(shí)戰(zhàn)

定 價(jià):¥89.00

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

ISBN: 9787115347343 出版時(shí)間: 2014-06-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 406 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

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

本目錄推薦

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