猜你喜欢
通用图形处理器设计(GPGPU编程模型与架构原理)/集成电路科学与技术丛书

通用图形处理器设计(GPGPU编程模型与架构原理)/集成电路科学与技术丛书

书籍作者:景乃锋 ISBN:9787302604648
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2039
创建日期:2023-04-08 发布日期:2023-04-08
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书是一本通用GPU芯片为基础实现芯片设计的专业书籍。介绍了GPU的基础理论,GPGPU的软硬件架构,相关工具以及优化技术。以通用GPGPU芯片为基础平台进行展开,重点深入了芯片的架构设计原理,架构设计理念和程序优化技术,同时以结合AI应用展现性能优势和特有价值。通过本书,使读者能系统了解体系结构理论,促进GPGPU芯片架构设计的兴趣与学习,不断了解GPGPU芯片技术的新发展,新技术。本书是国内首部关于GPGPU芯片架构设计系统性介绍的教材,兼顾理论基础及实现应用,广采而精取,层层揭开GPGPU芯片原理。本书可作为高等院校、科研机构等相关单位从事理论教学或者计算机学科进行科学研究的科学家、工程师的参考书籍,也可作为高年级本科生和研究生的学习参考书籍。

作者简介

景乃锋,上海交通大学电子信息学院副研究员。博士毕业于上海交通大学。研究方向包括:高性能及高可靠性计算机系统与结构,数字电路及计算机辅助设计等。

编辑推荐

本书是国内首部关于GPGPU芯片架构设计系统性介绍的教材,兼顾理论基础及实现应用,广采而精取,层层揭开GPGPU芯片原理。本书可作为高等院校、科研机构等相关单位从事理论教学或者计算机学科进行科学研究的科学家、工程师的参考书籍,也可作为高年级本科生和研究生的学习参考书籍。

前言

随着人工智能的飞速发展,现代信息社会中数据就是生产要素,算力就是生产力。如何构筑未来大算力的基础设施,满足人们对通用大算力无止境的追求,成为促进人工智能和信息产业持续健康发展的重要因素。

在当前众多算力芯片的不同形态中,源于图形处理器的通用图形处理器(General Purpose Graphics Processing Unit,GPGPU)脱颖而出,在众多行业和多个领域中得到了充分的验证,广泛赋能图形/游戏、高性能计算、人工智能、数字货币及多种行业应用的大数据处理。得益于其大算力和高度可编程特性,GPGPU作为一种通用加速器已经成为未来算力建设的基础性器件。正值本书撰稿之时,在人工智能、算力基建和中美博弈等多种因素的推动下,国内GPGPU行业发展和创业热潮也正呈现出前所未有的热度。

然而,相比于利用GPGPU进行应用开发在国内的普及程度,GPGPU的体系结构和芯片设计等核心关键技术仍然垄断在国外少数芯片厂商手中,我们与国外相比仍然存在较大差距。这依然是我国高端通用处理器芯片产业发展必须突破的短板。

遗憾的是,截至目前,国内还没有一本合适的教材能够帮助体系结构设计人员、芯片设计人员及GPGPU编程人员深入理解GPGPU体系结构的内涵和硬件设计的奥秘。即便在国际范围内,相关的专业书籍也并不多见。而且,GPGPU的历史并不长。人们对GPGPU的了解并没有像通用处理器CPU那样深入,也没有达到深度学习专用加速器近年来高涨的热度。这导致无论GPGPU的产业发展还是学术研究都面临着较高的门槛。

不积跬步,无以至千里。我们尝试着去填补这个空白,迈出深入GPGPU体系结构的一小步。本书并不是一本GPGPU应用开发指南,也不是一本GPGPU编程语法手册,更不是特有产品的推广或是复杂芯片的工程实现,因为在这些方面已经有了大量很好的教材和参考书可以提供丰富翔实的案例与完整准确的说明。

我们希望的是让读者以架构的视角,去理解GPGPU体系结构的特点,去思考GPGPU芯片设计的方式。我们更希望通过本书能够启发更多的读者去理解芯片设计的特点,思索计算的本质,进而能够把握未来高性能通用计算架构的发展方向。我们也希望通过本书与国内同行一起探讨和分享GPGPU架构和芯片设计的研究成果,推动我国高端通用处理器芯片和人工智能产业的进一步发展。

本书共分为7章,内容涵盖GPGPU概述、编程模型、控制核心架构、存储架构、运算单元架构、张量核心架构及总结与展望。其中,第1章GPGPU概述,着重介绍GPGPU与CPU体系结构上的差异和现代GPGPU产品的特点。第2章GPGPU编程模型,介绍GPGPU编程模型的核心概念,勾勒出GPGPU异构计算的设计要点。第3章GPGPU控制核心架构,对GPGPU指令流水线和关键控制部件的原理进行分析和介绍,并深入探讨GPGPU架构的瓶颈问题和优化方法。第4章GPGPU存储架构,对GPGPU多样的层次化存储器进行介绍,重点探讨片上存储器的设计和优化方法。第5章GPGPU运算单元架构,介绍数值表示和通用运算核心的设计。第6章GPGPU张量核心架构,对专门为人工智能加速而设计的张量核心架构展开分析与介绍,揭示GPGPU对深度学习进行硬件加速的基本原理。在上述架构原理、设计方法的探讨中,本书还着重介绍国际前沿的研究成果,力图解释设计背后的挑战,促使读者更深入地思考GPGPU架构设计的核心要素问题。第7章总结与展望,对全书内容进行总结,并对GPGPU发展进行展望。

这本书的出版,凝聚了许多老师、同学和业界同行的努力和心血。

感谢上海交通大学的博士研究生李兴、刘学渊、王旭航及硕士研究生官惠泽、王雅洁、王珏在本书资料搜集、整理工作中做出的巨大贡献。

感谢上海交通大学的领导和同事在本书写作过程中给予的支持。

感谢壁仞科技董事长张文在本书写作过程中提供的支持,也特别感谢壁仞科技王海川、陈龙、唐衫博士等对本书内容的建议和补充。

感谢清华大学出版社盛东亮和崔彤等在本书的编校工作中所做出的贡献。

虽然我们在本书编撰过程中精益求精,但由于时间仓促和编者水平有限,书中难免有疏漏和不足之处,恳请读者批评指正!

编者

2022年3月





目录

第1章 GPGPU概述
1.1 GPGPU与并行计算机
1.1.1 并行体系结构
1.1.2 GPU与CPU体系结构对比
1.2 GPGPU发展概述
1.2.1 GPU
1.2.2 从GPU到GPGPU
1.3 现代GPGPU产品
1.3.1 NVIDIA GPGPU
1.3.2 AMD GPGPU
1.3.3 Intel 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.5 CUDA指令集概述

2.5.1 中间指令PTX
2.5.2 机器指令SASS
参考文献
第3章 GPGPU控制核心架构
3.1 GPGPU架构概述
3.1.1 CPU-GPGPU异构计算系统
3.1.2 GPGPU架构
3.1.3 扩展讨论:架构特点和局限性
3.2 GPGPU指令流水线
3.2.1 前段:取指与译码
3.2.2 中段:调度与发射
3.2.3 后段:执行与写回
3.2.4 扩展讨论:线程束指令流水线
3.3 线程分支
3.3.1 谓词寄存器
3.3.2 SIMT堆栈
3.3.3 分支屏障
3.3.4 扩展讨论:更高效的线程分支执行
3.4 线程束调度
3.4.1 线程束并行、调度与发射
3.4.2 基本的调度策略
3.4.3 扩展讨论:线程束调度策略优化
3.5 记分牌
3.5.1 数据相关性
3.5.2 GPGPU中的记分牌
3.5.3 扩展讨论:记分牌设计优化
3.6 线程块分配与调度
3.6.1 线程块并行、分配与调度
3.6.2 基本的线程块分配与调度策略
3.6.3 扩展讨论:线程块分配与调度策略优化
参考文献
第4章 GPGPU存储架构
4.1 GPGPU存储系统概述
4.1.1 CPU的层次化存储
4.1.2 GPGPU的存储层次
4.2 寄存器文件
4.2.1 并行多板块结构
4.2.2 板块冲突和操作数收集器
4.2.3 操作数并行访问时的相关性冒险
4.2.4 扩展讨论:寄存器文件的优化设计
4.3 可编程多处理器内的存储系统
4.3.1 数据通路概述
4.3.2 共享存储器访问
4.3.3 L1高速缓存访问
4.3.4 纹理缓存
4.3.5 扩展讨论:片上存储系统的优化设计
4.4 可编程多处理器外的存储系统
4.4.1 存储分区单元
4.4.2 L2缓存
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.2 GPGPU的运算单元
5.2.1 整型运算单元
5.2.2 浮点运算单元
5.2.3 特殊功能单元
5.2.4 张量核心单元
5.3 GPGPU的运算单元架构
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.2 Volta架构中的张量核心
6.2.3 张量核心的发展
6.2.4 扩展讨论:张量核心对稀疏的支持
6.3 神经网络计算的软件支持

6.4 深度学习评价基准——MLPerf
参考文献
第7章 总结与展望
7.1 本书内容总结
7.2 GPGPU发展展望

产品特色