更新时间:2018-12-31 21:21:47
封面
版权信息
序一
序二
前言
第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 本章小结