¥ 110 九品
仅1件
作者[美]雷蒙德·泰(Raymond Tay) 著;张立浩 译
出版社机械工业出版社
出版时间2015-10
版次1
装帧平装
上书时间2024-07-10
资深软件开发人员撰写,从软件开发者的角度,深入剖析OpenCL异构并行编程技术,系统讲述OpenCL的核心概念、技术及实用技巧,融合作者多年OpenCL使用经验和异构编程心得,包含大量示例代码,有助于软件开发人员快速掌握异构并行编程技术并理解高性能计算。
本书共10章,第1章介绍使用OpenCL的目的,并概述OpenCL的核心概念;第2章讨论OpenCL中的缓冲区对象以及划分数据的策略;第3章解释OpenCL提供的两种常规数据类型,以及如何使用这些数据类型解决不同的问题;第4章讨论OpenCL提供的各种函数,以及如何使用对应的向量化函数加快执行速度;第5章给出典型OpenCL开发的生命周期及一些数据划分策略;第6章讨论如何开发索贝尔边缘检测滤波器;第7章讲述如何使用OpenCL实现矩阵乘法;第8章讨论如何在OpenCL中实现稀疏矩阵向量乘法;第9章介绍如何使用OpenCL开发双调排序;第10章介绍使用OpenCL开发基数排序。
Raymond Tay,资深软件开发者,拥有非常丰富的软件开发经验,精通Scala、Haskell、C和C++等编程语言。Raymond于2008年开始接触GPGPU技术,最初使用的是NVIDIA提供的CUDA工具箱和AMD提供的OpenCL工具箱,然后使用的是Intel工具箱。他参与了多个使用CUDA和OpenCL中所提供GPGPU技术与技巧的项目,同时对云计算中的函数编程范例和相关应用充满热情,并研究通过使用GPGPU技术和函数编程范例加速云中应用程序的各种途径。
作者简介
审校者简介
前言
第1章 使用OpenCL 1
1.1 引言 1
1.2 查询OpenCL平台 7
1.3 查询平台上的OpenCL设备 10
1.4 查询OpenCL设备扩展 14
1.5 查询OpenCL上下文 16
1.6 查询OpenCL程序 20
1.7 创建OpenCL内核 25
1.8 创建命令队列以及对OpenCL内核排队 28
第2章 理解OpenCL数据传送与划分 32
2.1 引言 32
2.2 创建OpenCL缓冲对象 33
2.3 检索关于OpenCL缓冲对象的信息 39
2.4 创建OpenCL子缓冲对象 41
2.5 检索关于OpenCL子缓冲对象的信息 45
2.6 理解事件和事件同步 47
2.7 在存储对象之间复制数据 50
2.8 使用工作项划分数据 55
第3章 理解OpenCL数据类型 62
3.1 引言 62
3.2 初始化OpenCL标量数据类型 63
3.3 初始化OpenCL向量数据类型 65
3.4 使用OpenCL标量类型 67
3.5 理解OpenCL向量类型 69
3.6 向量和标量地址空间 80
3.7 配置OpenCL项目以启用double数据类型 83
第4章 使用OpenCL函数 87
4.1 引言 87
4.2 将向量存储到数组中 88
4.3 从数组加载向量 91
4.4 使用几何函数 94
4.5 使用整型函数 97
4.6 使用浮点函数 99
4.7 使用三角函数 101
4.8 OpenCL中的算术和舍入 104
4.9 使用OpenCL中的shuffle函数 107
4.10 使用OpenCL中的select函数 109
第5章 开发直方图OpenCL程序 112
5.1 引言 112
5.2 在C/C++中实现直方图 112
5.3 直方图的OpenCL实现 115
5.4 工作项同步 124
第6章 开发索贝尔边缘检测滤波器 126
6.1 引言 126
6.2 理解卷积理论 127
6.3 理解一维卷积 128
6.4 理解二维卷积 130
6.5 索贝尔边缘滤波器的OpenCL实现 132
6.6 理解OpenCL中的剖析 137
第7章 使用OpenCL实现矩阵乘法 140
7.1 引言 140
7.2 理解矩阵乘法 141
7.3 矩阵乘法的OpenCL实现 144
7.4 通过线程粗化获得矩阵乘法的更快速OpenCL实现 147
7.5 通过寄存器分块获得矩阵乘法的更快速OpenCL实现 150
7.6 通过矩阵乘法中的共享内存数据预取减少全局内存 152
第8章 在OpenCL中实现稀疏矩阵向量乘法 157
8.1 引言 157
8.2 使用共轭梯度方法对SpMV求解 158
8.3 理解各种SpMV数据存储格式,包括ELLPACK、ELLPACK-R、COO和CSR 162
8.4 理解如何使用ELLPACK-R格式解决SpMV问题 166
8.5 理解如何使用CSR格式解决SpMV问题 168
8.6 理解如何使用VexCL格式解决SpMV问题 176
第9章 使用OpenCL实现双调排序 179
9.1 引言 179
9.2 了解排序网络 180
9.3 了解双调排序 182
9.4 在OpenCL中开发双调排序 187
第10章 使用OpenCL实现基数排序 196
10.1 引言 196
10.2 了解基数排序 196
10.3 了解MSD和LSD基数排序 198
10.4 了解归约 200
10.5 在OpenCL中开发基数排序 207
— 没有更多了 —
以下为对购买帮助不大的评价