前言 随着人工智能的飞速发展,现代信息社会中数据就是生产要素,算力就是生产力。如何构筑未来大算力的基础设施,满足人们对通用大算力无止境的追求,成为促进人工智能和信息产业持续健康发展的重要因素。 在当前众多算力芯片的不同形态中,源于图形处理器的通用图形处理器(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月