| 作者: | Matthew Scarpino |
| 语言: | 英文 |
| 出版年份: | 2012 |
| 下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
OpenCL in Action 是 Manning 出版社 2012 年出版的 OpenCL 入门实战指南,作者 Matthew Scarpino。全书以 C 语言 API 为主线,系统讲解如何利用 OpenCL 在 GPU、CPU 等多核设备上编写高性能并行程序,涵盖从基础概念到大规模数值算法的完整路径。
本书分三部分。第一部分(第1–10章)从零开始构建 OpenCL 知识体系:先介绍 OpenCL 的起源与并行编程模型,再分别讲解主机端编程(平台、设备、上下文、程序、内核、命令队列)和内核编程(数据类型、运算符、函数),随后深入图像处理、事件同步与性能剖析,最后扩展到 C++、Java(Aparapi、JavaCL)和 Python(PyOpenCL)绑定。第二部分(第11–14章)进入实战算法:归约与排序(MapReduce、双调排序、基数排序)、稠密矩阵与 QR 分解、稀疏矩阵与共轭梯度法、信号处理与快速傅里叶变换。第三部分(第15–16章)聚焦 OpenCL 与 OpenGL 互操作,展示如何用 OpenCL 加速 3D 渲染和纹理处理。
| 章节 | 内容 |
|---|---|
| 第1章 | OpenCL 概述:起源与演进、并行编程模型、首个完整应用示例 |
| 第2章 | 主机编程基础:平台与设备发现、上下文管理、程序构建、内核与命令队列 |
| 第3章 | 数据传输与分区:缓冲区与子缓冲区、图像对象、工作项与工作组划分 |
| 第4章 | 内核编程:标量与向量数据类型、浮点运算与 IEEE-754 合规、设备内存模型 |
| 第5章 | 内核运算符与函数:工作项与工作组函数、浮点与整数函数、几何与向量测试函数 |
| 第6章 | 图像处理:图像对象与采样器、最近邻与双线性插值、图像缩放 |
| 第7章 | 事件、剖析与同步:回调通知、命令同步、性能剖析、原子操作与互斥 |
| 第8章 | C++ 开发:C++ 绑定下的平台/设备/上下文、内存对象、命令队列与事件处理 |
| 第9章 | Java 与 Python 开发:Aparapi、JavaCL、PyOpenCL 的安装与内核开发 |
| 第10章 | 通用编码原则:全局与局部尺寸选择、向量化归约、十条高性能内核技巧 |
| 第11章 | 归约与排序:MapReduce 文本搜索、双调排序、基数排序的 OpenCL 实现 |
| 第12章 | 矩阵与 QR 分解:矩阵转置与乘法、Householder 变换、QR 分解实现 |
| 第13章 | 稀疏矩阵:Harwell-Boeing 与 Matrix Market 格式、最速下降法、共轭梯度法 |
| 第14章 | 信号处理与 FFT:离散傅里叶变换理论、快速傅里叶变换的 OpenCL 实现 |
| 第15章 | OpenCL 与 OpenGL 结合:数据共享与同步、顶点属性互操作、动画渲染 |
| 第16章 | 纹理与渲染缓冲:高斯模糊、图像锐化、浮雕效果等滤波的 OpenCL 加速 |
适合具备 C 语言基础、希望入门 GPU 并行编程的开发者。无需 OpenCL 或分布式计算经验,书中从零讲起。对从事科学计算、图像处理、游戏开发或高性能计算的工程师尤其有价值。
本书是 OpenCL 1.x 时代的经典教程,以清晰的示例驱动方式覆盖了从 API 基础到工业级算法的完整链条。60 余个可运行示例贯穿全书,C++、Java、Python 多语言视角降低了入门门槛。虽然 OpenCL 生态已演进至 3.0,但书中关于并行编程思想、内存模型、工作项划分和性能优化的核心原则至今仍有参考价值。