目录 第1章GPGPU概述 1.1GPGPU与并行计算机 1.1.1并行体系结构 1.1.2GPU与CPU体系结构对比 1.2GPGPU发展概述 1.2.1GPU 1.2.2从GPU到GPGPU 1.3现代GPGPU产品 1.3.1NVIDIA GPGPU 1.3.2AMD GPGPU 1.3.3Intel GPGPU 1.3.4其他GPU 参考文献 第2章GPGPU编程模型 2.1计算模型 2.1.1数据并行和线程 2.1.2主机设备端和内核函数 2.2线程模型 2.2.1线程组织与数据索引 2.2.2线程分配与执行 2.2.3线程模型小结 2.3存储模型 2.3.1多样的存储器类型 2.3.2存储资源与线程并行度 2.4线程同步与通信模型 2.4.1同步机制 2.4.2协作组 2.4.3流与事件 2.4.4原子操作 2.5CUDA指令集概述 2.5.1中间指令PTX 2.5.2机器指令SASS 参考文献 第3章GPGPU控制核心架构 3.1GPGPU架构概述 3.1.1CPUGPGPU异构计算系统 3.1.2GPGPU架构 3.1.3扩展讨论: 架构特点和局限性 3.2GPGPU指令流水线 3.2.1前段: 取指与译码 3.2.2中段: 调度与发射 3.2.3后段: 执行与写回 3.2.4扩展讨论: 线程束指令流水线 3.3线程分支 3.3.1谓词寄存器 3.3.2SIMT堆栈 3.3.3分支屏障 3.3.4扩展讨论: 更高效的线程分支执行 3.4线程束调度 3.4.1线程束并行、调度与发射 3.4.2基本的调度策略 3.4.3扩展讨论: 线程束调度策略优化 3.5记分牌 3.5.1数据相关性 3.5.2GPGPU中的记分牌 3.5.3扩展讨论: 记分牌设计优化 3.6线程块分配与调度 3.6.1线程块并行、分配与调度 3.6.2基本的线程块分配与调度策略 3.6.3扩展讨论: 线程块分配与调度策略优化 参考文献 第4章GPGPU存储架构 4.1GPGPU存储系统概述 4.1.1CPU的层次化存储 4.1.2GPGPU的存储层次 4.2寄存器文件 4.2.1并行多板块结构 4.2.2板块冲突和操作数收集器 4.2.3操作数并行访问时的相关性冒险 4.2.4扩展讨论: 寄存器文件的优化设计 4.3可编程多处理器内的存储系统 4.3.1数据通路概述 4.3.2共享存储器访问 4.3.3L1高速缓存访问 4.3.4纹理缓存 4.3.5扩展讨论: 片上存储系统的优化设计 4.4可编程多处理器外的存储系统 4.4.1存储分区单元 4.4.2L2缓存 4.4.3帧缓存单元 4.4.4全局存储器 4.5存储架构的优化设计 4.5.1片上存储资源融合 4.5.2技术对比与小结 参考文献 第5章GPGPU运算单元架构 5.1数值的表示 5.1.1整型数据 5.1.2浮点数据 5.1.3扩展讨论: 多样的浮点数据表示 5.2GPGPU的运算单元 5.2.1整型运算单元 5.2.2浮点运算单元 5.2.3特殊功能单元 5.2.4张量核心单元 5.3GPGPU的运算单元架构 5.3.1运算单元的组织和峰值算力 5.3.2实际的指令吞吐率 5.3.3扩展讨论: 脉动阵列结构 参考文献 第6章GPGPU张量核心架构 6.1深度神经网络的计算 6.1.1深度神经网络的计算特征 6.1.2卷积运算方式 6.2张量核心架构 6.2.1张量核心架构特征概述 6.2.2Volta架构中的张量核心 6.2.3张量核心的发展 6.2.4扩展讨论: 张量核心对稀疏的支持 6.3神经网络计算的软件支持 6.4深度学习评价基准——MLPerf 参考文献 第7章总结与展望 7.1本书内容总结 7.2GPGPU发展展望