图书介绍
OpenCL实战【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- (美)斯卡皮诺著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115347343
- 出版时间:2014
- 标注页数:406页
- 文件大小:66MB
- 文件页数:425页
- 主题词:图形软件-程序设计
PDF下载
下载说明
OpenCL实战PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 OpenCL编程基础3
第1章 OpenCL简介3
1.1 OpenCL的来临4
1.2为什么是OpenCL5
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框架和SDK13
1.7小结14
第2章 主机编程:基本的数据结构15
2.1基本数据类型16
2.2获取平台信息17
2.2.1创建平台结构17
2.2.2获取平台信息18
2.2.3示例代码:测试平台的扩展19
2.3访问安装设备20
2.3.1创建设备结构21
2.3.2获取设备信息22
2.3.3示例代码:测试设备扩展22
2.4通过上下文管理设备24
2.4.1创建上下文25
2.4.2获取上下文信息26
2.4.3上下文和引用计数27
2.4.4示例代码:检查上下文的引用计数27
2.5将设备代码保存在程序中28
2.5.1创建程序29
2.5.2编译程序30
2.5.3获取程序信息31
2.5.4示例代码:构建来自多个源文件的程序33
2.6将函数打包为内核34
2.6.1创建内核35
2.6.2获取内核信息35
2.6.3示例代码:获取内核信息36
2.7用命令队列保存内核37
2.7.1创建命令队列38
2.7.2入列内核执行命令38
2.8小结39
第3章 主机编程:数据传输和数据划分41
3.1设置内核参数42
3.2缓存对象42
3.2.1分配缓存对象43
3.2.2创建子缓存对象45
3.3图像对象46
3.3.1创建图像对象46
3.3.2获取图像对象的相关信息49
3.4获取缓存对象的相关信息49
3.5内存对象的传输命令51
3.5.1读/写数据传输52
3.5.2映射内存对象55
3.5.3内存对象间的数据复制57
3.6数据划分59
3.6.1循环和工作项60
3.6.2工作项的大小和偏移量61
3.6.3一个简单的一维例子62
3.6.4工作组和计算单元63
3.7小结64
第4章 内核编程:数据类型和设备内存66
4.1内核编程简介67
4.2标量数据类型68
4.2.1访问双精度数据类型69
4.2.2字节顺序70
4.3浮点计算71
4.3.1浮点数据类型71
4.3.2双转度数据类型72
4.3.3 half数据类型73
4.3.4检查IEEE-754的兼容性73
4.4向量数据类型75
4.4.1首选向量宽度76
4.4.2初始化向量78
4.4.3读取和修改向量分量78
4.4.4字节顺序和内存访问81
4.5 OpenCL设备模型83
4.5.1内核模型类比的第一部分:学校中学数学的学生83
4.5.2设备模型类比的第二部分:设备上的工作项84
4.5.3程序中的地址空间86
4.5.4内存对齐88
4.6局部和私有内核参数88
4.6.1局部参数89
4.6.2私有参数89
4.7小结90
第5章 内核编程:运算符和函数92
5.1运算符93
5.2工作组和工作项函数95
5.2.1维度和工作项96
5.2.2工作组97
5.2.3示例应用97
5.3数据传输操作98
5.3.1加载和保存同类型的数据98
5.3.2将标量数组加载保存到向量中99
5.3.3将向量保存到标量数组中100
5.4浮点型函数100
5.4.1算术运算函数和取舍函数100
5.4.2比较函数102
5.4.3指数函数和对数函数103
5.4.4三角函数103
5.4.5其他类型的浮点函数105
5.5整数函数106
5.5.1加法函数和减法函数106
5.5.2乘法运算108
5.5.3其他类型的整数函数109
5.6混洗和选择函数111
5.6.1混洗函数111
5.6.2选择函数113
5.7向量测试函数115
5.8几何函数116
5.9小结118
第6章 图像处理120
6.1图像对象和采样器121
6.1.1主机上的图像对象:cl_mem121
6.1.2主机上的采样器;cl_sampler122
6.1.3设备上的图像对象:image2d_t和image3d_t125
6.1.4设备上的采样器:sampler_t126
6.2图像处理函数126
6.2.1图像读取函数127
6.2.2写图像函数128
6.2.3图像信息函数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将事件和命令关联137
7.1.2将事件和回调函数作关联138
7.1.3主机提醒的例子139
7.2命令同步事件140
7.2.1等待列表和命令事件141
7.2.2等待列表和用户事件142
7.2.3额外的命令同步函数144
7.2.4获取和事件关联的数据146
7.3性能分析事件149
7.3.1配置性能分析命令149
7.3.2对数据传输进行性能分析151
7.3.3对数据划分进行分析152
7.4工作项同步化154
7.4.1障碍和栅栏155
7.4.2原子操作156
7.4.3原子命令和互斥158
7.4.4异步数据传输160
7.5小结161
第8章 用C++开发163
8.1初步了解164
8.1.1向量和字符串164
8.1.2异常165
8.2创建内核166
8.2.1平台、设备以及上下文166
8.2.2程序和内核169
8.3内核参数和内存对象172
8.3.1内存对象173
8.3.2通用数据参数177
8.3.3局部内存参数178
8.4命令队列179
8.4.1创建CommandQueue对象179
8.4.2入列内核执行命令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另外的事件函数189
8.6小结190
第9章 用Java和Python来开发192
9.1 Aparapi193
9.1.1Aparapi安装193
9.1.2 Kernel类194
9.1.3工作项和工作组195
9.2 JavaCL197
9.2.1 JavaCL安装198
9.2.2 JavaCL开发概述198
9.2.3用JavaCL来创建内核199
9.2.4设定内核参数以及入列命令202
9.3PyOpenCL206
9.3.1PyOpenCL安装和许可206
9.3.2 PyOpenCL开发概述207
9.3.3用PyOpenCL创建内核207
9.3.4设置参数和执行内核211
9.4小结215
第10章 通用编程原则217
10.1全局大小和局部大小218
10.1.1找出工作组大小的上限值218
10.1.2测试内核和设备220
10.2数值归并221
10.2.1 OpenCL的归并算法221
10.2.2使用向量提升归并运算的速度224
10.3工作组间的同步化225
10.4设计高性能内核的10条技巧227
10.5小结229
第二部分 用OpenCL来编程实现实际的算法233
第11章 归并与排序233
11.1 MapReduce234
11.1.1 MapReduce简介234
11.1.2 MapReduce和OpenCL236
11.1.3 MapReduce例子:字符串查找238
11.2双调排序240
11.2.1理解双调排序算法240
11.2.2用OpenCL来实现双调排序243
11.3基数排序249
11.3.1理解基数排序250
11.3.2用向量实现基数排序250
11.4小结252
第12章 矩阵和QR分解253
12.1矩阵转置254
12.1.1矩阵简介254
12.1.2矩阵转置的理论和实现254
12.2矩阵乘法257
12.2.1矩阵乘法理论257
12.2.2用OpenCL编程实现矩阵乘法258
12.3Householder变换259
12.3.1向量投影260
12.3.2向量反射261
12.3.3外积和Householder矩阵262
12.3.4用OpenCL编程实现向量反射263
12.4 QR分解264
12.4.1计算Householder向量和R矩阵265
12.4.2计算Householder矩阵和矩阵Q266
12.4.3用OpenCL编程实现QR分解267
12.5小结270
第13章 稀疏矩阵272
13.1差分方程和稀疏矩阵273
13.2稀疏矩阵的存储以及Harwell-Boeing数据集274
13.2.1Harwell-Boeing数据集简介274
13.2.2访问Matrix Market文件中的数据275
13.3最速下降法278
13.3.1正定矩阵279
13.3.2最速下降法理论279
13.3.3用openCL编程实现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和DFT298
14.3快速傅里叶变换299
14.3.1 DFT的三条性质299
14.3.2构建快速傅里叶变换302
14.3.3用OpenCL来实现FFT306
14.4小结311
第三部分 用OpenCL来加速OpenGL315
第15章 将OpenCL和OpenGL结合315
15.1在OpenGL和OpenCL之间共享数据316
15.1.1创建OpenCL上下文317
15.1.2在OpenGL和OpenCL之间共享数据319
15.1.3同步化对共享数据的访问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创建数据对象327
15.3.4执行内核327
15.3.5渲染图形328
15.4互操作和动画329
15.4.1确定顶点数据329
15.4.2动画和显示330
15.4.3执行内核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函数339
16.2.2 init_cl函数339
16.2.3 configure_shared_data函数340
16.2.4 execute_kernel函数341
16.2.5 display函数342
16.3小结343
附录A 安装和使用软件开发包344
A.1了解OpenCL SDK344
A.1.1检查设备的兼容性344
A.1.2 OpenCL头文件和库文件345
A.2Windows上的OpenCL347
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.3Linux上的OpenCL351
A.3.1在Linux上安装AMD的显卡驱动351
A.3.2在Linux上安装Nvidia显卡驱动352
A.3.3在Linux上编译OpenCL应用程序354
A.4在Mac OS上安装OpenCL355
A.5小结356
附录B 用OpenGL作实时渲染357
B.1安装OpenGL358
B.1.1在Windows上安装OpenGL359
B.1.2在Linux上安装OpenGL359
B.1.3在Mac OS上安装OpenGL360
B.2在主机上开发OpenGL应用程序360
B.2.1将数据放到顶点缓存对象(VBO)之中361
B.2.2配置顶点属性363
B.2.3编译和部署着色器365
B.2.4启动渲染过程367
B.3开发着色器程序369
B.3.1着色器编程简介370
B.3.2顶点着色器373
B.3.3片段着色器374
B.4用GLUT来创建OpenGL窗口375
B.4.1配置和创建窗口375
B.4.2事件处理376
B.4.3显示窗口377
B.5将OpenGL和GLUT结合379
B.5.1GLUT/OpenGL初始化379
B.5.2设置视窗(viewport)381
B.5.3渲染模型381
B.6添加纹理382
B.6.1在主机应用程序中创建纹理383
B.6.2顶点着色器中的纹理映射386
B.6.3在片段着色器中使用纹理387
B.7小结388
附录C 面向Windows和OpenCL的最简GNU390
C.1在Windows下安装MinGW390
C.1.1获取并运行图形安装工具391
C.1.2在MinGW下安装新工具393
C.2编译MinGW可执行程序394
C.2.1用MinGW编译HelloWorld!394
C.2.2GNU编译器395
C.3Makefiles396
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移动设备上的OpenCL404
D.1数值处理404
D.2图像处理405
D.3小结406
热门推荐
- 716553.html
- 1470583.html
- 970180.html
- 858379.html
- 1996236.html
- 1443292.html
- 86378.html
- 2663553.html
- 3575988.html
- 2202602.html
- http://www.ickdjs.cc/book_3574698.html
- http://www.ickdjs.cc/book_1507895.html
- http://www.ickdjs.cc/book_310988.html
- http://www.ickdjs.cc/book_1910063.html
- http://www.ickdjs.cc/book_156827.html
- http://www.ickdjs.cc/book_3375356.html
- http://www.ickdjs.cc/book_1370101.html
- http://www.ickdjs.cc/book_2747474.html
- http://www.ickdjs.cc/book_1896501.html
- http://www.ickdjs.cc/book_467512.html