发表于2024-12-22
资深软件开发人员撰写,浓缩作者多年的OpenCL使用经验和异构编程心得,系统讲述OpenCL的核心概念、技术及实用技巧
从软件开发人员的角度,深入剖析OpenCL异构并行编程技术,通过50多个OpenCL技巧案例及大量示例代码,加速掌握异构并行编程技术并理解高性能计算
OpenCL是一个免版税的标准,适用于对个人计算机、服务器、手机和嵌入式设备中的现代处理器进行跨平台的并行编程。
本书可大致划分为两部分,第一部分介绍OpenCL并行开发的基础知识,第二部分则给出各种算法。每一部分都包含许多代码示例和图解,以便演示各种概念。通过阅读本书,你将学到:
OpenCL的使用方式
OpenCL中的数据划分和传送
OpenCL数据类型
OpenCL的各种函数,包括数学、原子、线程模型、数据传送等
在OpenCL中开发直方图
在OpenCL中开发索贝尔边缘检测滤波器
在OpenCL中实现矩阵乘法和稀疏矩阵向量乘法
在OpenCL中实现双调排序和基数排序
并行编程的相关知识
资深软件开发人员撰写,从软件开发者的角度,深入剖析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
OpenCL异构并行编程实战 下载 mobi pdf epub txt 电子书 格式 2024
OpenCL异构并行编程实战 下载 mobi epub pdf 电子书好
评分书一般,比较笼统...
评分商品很赞,京东物流给力!
评分一直想深入学习并发编程, 在CUDA框架下学了些, 但太局限, OPENCL算是一个通用的框架, 移植性很高, 必须好好学习!
评分在看,还挺不错的,有需要再来
评分.........................
评分书写得很好,值得好好读。
评分商品很赞,京东物流给力!
评分讲得十分清楚,不过感觉更适合于对OpenCL有初步了解的
OpenCL异构并行编程实战 mobi epub pdf txt 电子书 格式下载 2024