OpenCL异构并行计算:原理、机制与优化实践

OpenCL异构并行计算:原理、机制与优化实践

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

详细描述了OpenCL的各种概念和特性,通过由浅入深的一系列实际应用案例,帮助读者掌握这个令人激动的新编程模型。

内容简介

本书一共分为4个部分:第1章介绍并行计算的沿革与现状。第2章介绍了OpenCL C语言的相关语法。第3章到第5章讲解了OpenCL运行时接口及其功能。第6章讲解了OpenCL更底层的工作机制,并结合当前主流的GPGPU做详细分析。第7章到第11章则是以四个实际常用算法来介绍如何用OpenCL做加速并行计算。通过阅读本书,读者不仅能全面掌握OpenCL的常规用法,而且还能深入了解OpenCL的运作机制,如何将计算设备的性能发挥到极致。这样就可以充分利用硬件特性来调整算法,使得计算速度能达到峰值。

作者简介

作者刘文志,花名风辰,毕业于科学院研究生院,闻名于并行计算江湖,尤善异构并行计算(X86、ARM、GPU、APU、PHI)和大规模集群计算相关技术,有7年相关经验,涉及图像处理、计算机视觉、数据挖掘和石油勘探。曾任英伟达并行计算工程师(协助建立英伟达北京CUDA团队)、百度在线高级研发工程师(协助建立百度深度学习实验室异构计算团队)。

章节目录

版权信息

序一

序二

前言

第1章 异构并行计算的过去、现状和未来

1.1 单核标量处理器的困境

1.1.1 单核标量处理器如何提高性能

1.1.2 为什么单核标量处理器性能到达瓶颈

1.2 多核并行计算与向量化的出现

1.2.1 为什么会有多核

1.2.2 为什么会有向量化

1.2.3 如何利用多核和向量化的能力

1.2.4 多核和向量化的难点

1.3 异构并行计算的崛起

1.3.1 GPGPU的理念

1.3.2 CUDA的崛起

1.3.3 OpenCL横空出世

1.4 异构并行计算的未来(百花齐放)

1.5 本章小结

第2章 OpenCL的基本介绍

2.1 什么是OpenCL

2.2 OpenCL平台模型

2.3 OpenCL执行模型

2.3.1 上下文

2.3.2 命令队列

2.3.3 内核在OpenCL设备上执行

2.4 OpenCL存储器模型

2.4.1 存储器区域

2.4.2 存储器对象

2.4.3 共享虚拟存储器

2.5 OpenCL与OpenGL

2.6 OpenCL与CUDA

2.7 本章小结

第3章 进入OpenCL的世界(矢量加法)

3.1 构建示例

3.1.1 Windows平台

3.1.2 Linux平台

3.1.3 OS X平台

3.1.4 矢量加示例

3.2 获得OpenCL平台和设备及其属性

3.2.1 OpenCL平台

3.2.2 OpenCL设备

3.3 创建上下文和命令队列

3.3.1 创建OpenCL上下文

3.3.2 创建命令队列

3.4 创建程序对象和内核对象

3.5 程序对象

3.5.1 创建程序对象

3.5.2 构建程序对象

3.5.3 查询和管理程序对象

3.6 内核对象

3.6.1 创建内核对象

3.6.2 设置内核参数

3.6.3 查询和管理内核对象

3.7 执行内核

3.8 编写内核代码

3.9 OpenCL错误处理

3.10 本章小结

第4章 OpenCL C语言

4.1 修饰符

4.1.1 地址空间修饰符

4.1.2 函数修饰符

4.1.3 对象访问修饰符

4.2 标量数据类型

4.3 矢量数据类型

4.3.1 为什么要有矢量数据类型

4.3.2 矢量数据的使用

4.4 运算符

4.5 工作项布局函数

4.5.1 维度和工作项

4.5.2 工作组

4.6 数据拷贝操作

4.6.1 矢量数据拷贝

4.6.2 异步拷贝和预取

4.7 浮点函数

4.7.1 数学函数

4.7.2 公共函数

4.7.3 几何函数

4.8 整数函数

4.9 关系函数

4.10 杂项矢量函数

4.11 同步函数

4.12 原子函数

4.13 图像读/写函数

4.13.1 内建图像读函数

4.13.2 内建无采样器图像读函数

4.13.3 内建图像写函数

4.13.4 内建图像查询函数

4.14 工作组函数

4.15 管道函数

4.15.1 内建管道读/写函数

4.15.2 内建工作组管道读/写函数

4.15.3 内建管道查询函数

4.16 设备队列

4.16.1 Blocks语法

4.16.2 设备队列相关函数

4.16.3 子内核存储器可见性

4.16.4 设备队列的使用示例

4.17 本章小结

第5章 OpenCL存储器对象

5.1 缓冲区

5.1.1 分配缓冲区对象

5.1.2 创建子缓冲区对象

5.2 图像对象和采样器对象

5.2.1 图像对象

5.2.2 采样器对象

5.2.3 图像旋转示例

5.3 管道

5.3.1 创建管道对象

5.3.2 管道对象查询

5.4 存储器对象数据传输

5.4.1 主机与设备间数据传输

5.4.2 存储器对象数据填充

5.4.3 存储器对象间数据传输

5.4.4 存储器对象映射

5.5 共享虚拟存储器

5.5.1 SVM缓冲操作

5.5.2 SVM类型和特性

5.5.3 相关示例

5.6 存储器一致性模型

5.6.1 存储器次序规则

5.6.2 原子操作的存储器次序规则

5.6.3 栅栏操作的存储器次序规则

5.6.4 工作组函数的存储器次序规则

5.6.5 主机端与设备端命令的存储器次序规则

5.6.6 关于存储器次序在实际OpenCL计算设备中的实现

5.7 本章小结

第6章 OpenCL同步及事件机制

6.1 主机端的OpenCL同步

6.2 OpenCL事件机制

6.2.1 对OpenCL事件的标记和栅栏

6.2.2 内核程序中的同步

6.2.3 工作组内同步

6.3 原子操作

6.3.1 OpenCL 1.2中的原子操作

6.3.2 OpenCL 2.0中的原子操作

6.4 局部存储器与全局存储器间的异步拷贝

6.5 工作组间同步

6.6 本章小结

第7章 OpenCL与OpenGL互操作

7.1 从一个OpenGL上下文来创建OpenCL上下文

7.2 OpenCL使用OpenGL共享的缓存对象

7.3 OpenCL使用OpenGL纹理数据

7.4 OpenCL共享OpenGL渲染缓存

7.5 从一个OpenCL存储器对象查询OpenGL对象信息

7.6 访问共享对象的OpenCL与OpenGL之间的同步

7.7 本章小结

第8章 OpenCL到主流GPU处理器的映射

8.1 AMD家族GPU

8.1.1 AMD Cayman架构GPU

8.1.2 AMD GCN架构的GPU

8.2 NVIDIA CUDA兼容的GPU

8.2.1 NVIDIA GPU架构的执行模型

8.2.2 NVIDIA GPU的全局存储器

8.2.3 NVIDIA GPU的局部存储器

8.3 ARM Mali GPU架构

8.3.1 硬件架构

8.3.2 存储器层次

8.3.3 OpenCL映射

8.4 本章小结

第9章 OpenCL计算二维卷积

9.1 测试平台信息

9.2 AMD X86 CPU串行实现

9.2.1 简单实现

9.2.2 循环展开优化实现

9.2.3 AVX指令集优化

9.2.4 OpenMP

9.3 简单OpenCL实现

9.4 使用常量存储器优化

9.5 使用局部存储器优化

9.6 一个工作项同时计算多个输出

9.7 本章小结

第10章 OpenCL计算矩阵乘法

10.1 串行实现

10.1.1 初次实现

10.1.2 缓存友好的实现

10.1.3 使用AVX指令集实现

10.2 简单OpenCL实现

10.3 使用局部存储器优化

10.4 使用向量加载指令

10.5 一个工作项同时计算多个输出

10.6 优化流水线性能

10.7 本章小结

附录A OpenCL Query实例

附录B 其他主流异构并行计算编程环境简介

OpenCL异构并行计算:原理、机制与优化实践是2015年由机械工业出版社华章分社出版,作者陈轶。

得书感谢您对《OpenCL异构并行计算:原理、机制与优化实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
IP通信原理与实践 电子书
本书共分六章:第一章概述介绍了计算机网络的基本概念、发展历程等基础知识;第二章物理层介绍了计算机网路体系结构中**底层的功能、使用的相关技术;第三章介绍了数据链路层的基本功能、以太网和局域网的接入方式;第四章网络层介绍了IP协议以及多种网络互连手段和常见的路由协议;第五章传输层介绍了TCP和UDP两种常用协议的工作方式和适用场合;第六章应用层着重介绍了常见的应用层功能和协议。
NB-IoT原理和优化 电子书
本书以NB-IoT网络的原理和目前的应用为出发点,通过大量的实例介绍NB-IoT网络的基本原理、网络结构以及基站安装、网络维护、网络优化各项工作的要点与细节,最后重点阐述NB-IoT在5G时代的发展,展望后续5G时代NB-IoT的发展和应用。
5G网络优化与实践进阶 电子书
5G网络优化与实践进阶 由中国工程院院士通信领域的专家邬贺铨院士作序并推荐。 5G网络优化与实践进阶书中有三大篇内容: 原理与技术篇、规划与部署篇、优化与应用篇。内容丰富,架构清晰,读者可以深入浅出地把理论知识与实际工作结合起来,真正掌握5G网络的全面应用,对全书内容更有把握。 5G网络优化与实践进阶是一本以5G原理与关键技术为基础,从5G规划与部署到5G商用网络优化案例分析的工具书,详细地论述了5G无线传播理论、天线、组网规划、规划流程、测试数据和相关经验。 5G网络优化与实践进阶 一书的作者均在项目一线从事5G网络规划、咨询、设计多年,有非常丰富的工程项目经验,本书与市场中的同类书相比,更侧重于理论结合工程实践,从事5G网络优化的人员都可受益,都可以强化自己的通信系统知识,掌握5G网络知识与实际操作技能,尤其是现场安装、调试、分析数据等均会收获颇丰。
深度学习原理与 TensorFlow实践 电子书
本书介绍了深度学习原理与TensorFlow实践。着重讲述了当前学术界和工业界的深度学习核心知识:机器学习概论、神经网络、深度学习。着重讲述了深度学习的实现以及深度学习框架TensorFlow:Python编程基础、TensorFlow编程基础、TensorFlow模型、TensorFlow编程实践、TensorFlowLite和TensorFlow.js、TensorFlow案例--医学应用和S
内存取证原理与实践 电子书
本书详细讨论了近年来计算机取证技术中最热门并极富挑战性的内存取证技术,共15章。第1~4章首先对内存取证的发展和意义进行概述式的描述,然后对涉及的现代计算机软硬件技术基础进行简要介绍,最后介绍内存获取和分析需要的方法、工具等。第5~10章根据几个主要的操作系统(Windows、Linux和Mac)对内存分析进行更加深入的介绍。第11~15章介绍内存分析技术在最新计算环境下的一些相关进展和技术,如移