《工业和信息化部电子第五研究所:2023异构融合计算技术白皮书(58页).pdf》由会员分享,可在线阅读,更多相关《工业和信息化部电子第五研究所:2023异构融合计算技术白皮书(58页).pdf(58页珍藏版)》请在三个皮匠报告上搜索。
1、 异构融合计算技术白皮书(2023年)工业和信息化部电子第五研究所 2023年 9月I 编写者 参编单位:浪潮电子信息产业股份有限公司、上海矩向科技有限公司、中国电信研究院、清华大学、中国科学院软件研究所、国防科技大学、复旦大学、中国长城研究院、中国电子技术标准化研究院、曙光信息产业(北京)有限公司、同方计算机有限公司、上海熠知电子科技有限公司、阿里云技术有限公司、中科院计算所、紫光集团前沿技术研究院 参编人员:杨晓明、陈平、刘建、熊婧、李冬、黄朝波、廉建芳、颜秉珩、林显成、董刚、王洲、蔡彦、陈小文、卢晶雨、任翔、刘娜、张政、李宁、崔士伟、徐扬、李璇、刘玉海、尹航、李阳、买强、张磊、张震宁、赵
2、立新、左明敏、周鹏、戴少鹏、杨蔚才、李亚军、伍海龙、陈硕、张阳、刘占民、王佑站、闫沛浩、张淑艳、杨攀飞 版权声明版权声明:本白皮书版权属于工业和信息化部电子第五研究所及参编单位,并受法律保护。转载、摘编或利用其它方式使用本白皮书文字或者观点的,应注明“来源:工业和信息化部电子第五研究所”。违反上述声明者,将追究其相关法律责任。II 编者序 近年来,自动驾驶、元宇宙、人工智能等应用不断创新发展,数据规模、算法复杂度以及算力需求爆发式增长。各类加速处理器已成为算力基础设施的重要组件,基于CPU+xPU 的异构计算系统逐渐成为各算力场景的主流架构。然而,随着异构计算系统的种类和数量越来越多,xPU
3、性能与灵活性难以兼顾、各 xPU 间计算孤岛问题难以协同、调试和维护成本增高等问题愈发凸显,亟需从异构融合计算方向加强理论研究和实践探索。以人工智能发展为例,Nature Electronics期刊在 2022年 4月的一篇文章显示:从 2018年开始,随着 AI 大模型应用的涌现,算力需求平均每 2 个月翻一倍;摩根士丹利估计“2022 年谷歌的 3.3 万亿次搜索,平均成本约为每个 0.2 美分”,John Hennessy 表示“基于大模型搜索的成本是标准关键词搜索的 10 倍”。需求的变化和成本的约束,再加上NoC(Network-on-Chip)和 SiP(System in Pac
4、kage)等新芯片技术的赋能,必将推动算力基础架构的变革。计算架构已逐渐从目前各自为政、孤岛式的异构计算,走向异构融合计算。同时,以系统设计为中心,按照应用需求来设计、定义和规划计算架构,推动多层级技术的融合已成为当前的最佳可行方案。狭义的异构融合计算,指的是多种不同类型、不同架构处理器组成的计算架构。广义的异构融合计算,是指通过将处理器、芯片、硬件设备、操作系统、编程框架、编程语言、网络通信协议、数据中心等不同层次、不同类型的计算技术进行整合优化,以实现多种异构计算资源的高效利用。本白皮书旨在探讨异构融合计算技术的内在机制、应用场景和发展趋势,通过概述计算领域相关概念,回顾计算架构发展历程,
5、分析了异构计算技术的发展现状及面临的主要问题,从硬件层面(芯片级、设备级)、软件层面(操作系统、编程框架)、系统层面分别提出了异构融合计算技术的探索方案及演进方向,引出了异构融合计算技术的发展趋势,并介绍了异构融合计算领域相关的实践案例。同时,指出了异构融合计算发展面临的挑战:一是,处理器架构的限制,可扩展性和灵活性难以满足,计算孤岛问题凸显;二是,当前的编程框架、编程语言、及其他编译/调试工具,不足以支撑高效的异构代码编写、优化和管理;三是,系统集成和互操作性技术要求高,难以构建统一的系统视图以支持跨平台的开发和部署。在此,对参与本白皮书编制的各位专家表示衷心的感谢。我们相信,白皮书将为读者
6、提供一个新的视角和思考方式,希望读者能够结合实际应用场景,对异构融合计算相关技术进行深入探索和研究。白皮书内容,不可避免会存在诸多不足,恳请各界专家批评指正。III 推荐序 1 当今,数字化技术作为科技与产业新一轮变革的核心驱动力,正在加速各行各业转型升级,一个以计算能力为基础的万物感知、万物互联、万物智能的数字经济时代正加速到来。在这一进程中,算力作为数字经济的核心生产力,由单一算力演变为多样性算力,如何实现多样性算力的高质量协同,已成为新型算力基础设施领域亟需突破的关键问题。异构融合计算技术白皮书针对现有算力基础设施无法满足算力需求的问题,深入刨析了异构计算应用场景特点以及计算架构异构演进
7、历程,提出了异构计算发展所面临的问题,引入异构融合计算的概念,并分别从硬件、软件、系统三大层面概述了异构融合趋势和关键技术,系统全面地论证了异构融合计算如何解决传统异构计算的问题,并为多样性算力高质量协同提供了全面的技术体系梳理和的技术发展趋势判断。中国电信作为云网领域的中央企业,全面深入实施“云改数转”战略,充分发挥云网融合优势,与产业链上下游广泛协同,积极打造云智、训推一体,云网边端协同的分布式算力基础设施。本白皮书为算力基础设施建设和算力赋能提供了相关技术指引和参考,从基本概念到实践案例,再到未来展望和发展建议,具有较高的实践指导价值,我们相信该白皮书能够为相关企业和研究机构提供有益的启
8、示,我们也期待我国在异构融合计算领域取得更多突破。-陆钢 中国电信研究院云网运营技术研究所副所长 IV 推荐序 2 数字化时代,创新应用爆发式增长,传统单一架构计算平台已难以满足多样性算力需求,异构融合计算技术的提出显得尤为重要。该白皮书深入浅出地解析了异构融合计算技术的内涵与外延,让我们对这一技术的概念、应用和发展趋势有了更清晰的认识。在硬件层面,异构融合计算技术是指将不同类型的处理器(如 CPU、GPU、FPGA 等)融合在一起,实现多种处理器的协同工作,以实现更高效、更灵活的计算能力。本白皮书通过研判芯粒级、设备级的技术融合趋势,为实现更高计算能力、更高能效比、更低算力成本的算力硬件实现
9、,提供了一种实现方案。在软件及系统层面,阐述了硬件架构优化、操作系统优化、算法定制、统一编程框架、编译器优化等软硬件高效协同设计的思路,这一点对硬件和软件开发都具有重要的引导意义。尽管异构融合计算这一技术还存在一些挑战和问题,但随着技术的进步和应用的深入,我们可以预见异构融合计算技术将在更多领域得到应用和发展。我们有理由相信这一技术将带来更多的社会和经济效益。因此,希望未来的研究能够继续关注这一领域的发展动态,以推动异构融合计算技术的进一步创新和应用。-陈艳军 中国移动通信集团有限公司信息技术中心部门副总经理 V 推荐序 3 计算力就是生产力,智算力就是创新力。智慧时代的大幕徐徐拉开,无论被动
10、或主动,我们都将见证智算赋能千行百业,助力效率呈百倍、千倍提升的历史时刻。以 ChatGPT 为代表的 AI应用,开启了人机结合的新篇章,它的意义不亚于蒸汽机引发的工业革命,甚至可以媲美人类语言的诞生!然而,AI 算力的猛增,也让 IT 基础架构面临着前所未有的挑战。感谢组织方和各位参编人员,适时地推出了这份前瞻且系统的异构融合计算技术白皮书。从计算领域相关概念出发,系统梳理了异构计算的背景和发展历程,剖析了异构计算面临的问题,进而引出异构融合计算的提法,在硬件、软件和系统层面进行了充分阐释,最后给出了展望和建议。全文较好地遵循了以系统设计为中心的理念,结合融合架构这一发展方向,指出了异构融合
11、计算的三条演进路径:需要在硬件层面实现芯片级和设备级的技术创新,需要在软件层面实现跨平台的编程框架和运行环境,需要在系统层面实现数据中心、网络、算力的融合,具有很强的指导意义。白皮书最大的亮点在于提出了“异构融合计算”的前瞻性概念,强调实现更深层次的协同,突破各异构系统之间的鸿沟,实现通用性和高性能的更高统一,这一观点前瞻性强,值得业界关注。异构融合计算通过多元融合的软硬件协同,实现大规模计算资源池化,更好地为新型应用提供高性价比的算力服务。总体来说,白皮书对异构融合计算的概念阐释和技术路线给出了参考,相信在实践中还需要不断丰富和发展。希望大家能够携手并进,共同推动异构融合计算理念的传播,并在
12、产业中得到更广泛的应用,为中国的算力产业和数字经济的发展添砖加瓦。-叶毓睿 元宇宙产业委副主任委员兼联席秘书长 VI 推荐序 4 异构融合技术是一种将不同种类、不同架构、不同性能的计算或处理单元融合在一起的技术。这种技术的目标是充分利用各种硬件的优势,以实现更高的性能、能效或功能扩展。异构融合技术通常涉及不同类型的处理器、加速器、存储设备等的协同工作,以满足日益复杂的计算需求。从整体出发,“以系统为中心”是异构融合的指导思想,浪潮信息的融合架构 3.0 是其中的典型代表。总的来说,异构融合技术在不同领域都发挥着重要作用,帮助实现更高效、更强大的计算能力,从而推动了科学、技术和应用的发展。因此,
13、本白皮书的提出具有非常重要的指导意义。在本白皮书中,编者详细介绍了异构融合的概念、应用场景、现有问题以及未来发展趋势。编者还从需求分析的角度出发,深入探讨了异构融合技术在不同领域的应用和需求。这些案例涉及不同领域,包括人工智能、高性能计算等,可以帮助读者更好地理解异构融合的应用和价值。总的来说,这本白皮书对异构融合技术进行了全面的介绍和分析,为读者提供了深入的了解和洞察。同时,编者也进一步探讨了异构融合技术的挑战和问题,以及未来的发展趋势和应用前景。-赵雅倩 浪潮信息体系结构研究部副总经理 VII 推荐序 5 以人工智能 ChatGPT 为代表的大模型出现,标志着人们对大算力平台的需求缺口从趋
14、势性预警变成迫切的现实。在计算平台的半导体 PPA、多层级数据访问架构、总线网络计算负载比重等方面,现有以 CPU 为中心的计算架构难以应对大算力、高能效的算力扩展需求的挑战。围绕“如何让数据每一跳都产生更多价值的高效能算力架构”科学发展问题,出现了的诸如算网融合、存算结合的多种新型 xPU 处理器架构,异构融合计算技术正是在这一背景下应运而生的一种创新解决方案。“异构”是指计算资源或技术具有不同的体系结构、指令集、算法、工作模式等。“融合”是指将不同种类的计算资源或技术进行组合和优化,以实现更高效、更稳定的计算效果。“异构融合”则包含硬件层面(芯片级、设备级)软件层面、系统层面的软硬件协同,
15、既有传统软件的硬件化卸载,也有总线和网络级的融合,整体上形成多种独立的xPU 计算引擎间的异构融合互补,甚至表现出一些颠覆性的架构创新,它将引领计算技术的新一轮发展。异构融合计算技术白皮书(2023 年)首次从芯片、整机、集群各层级,系统全面的阐述了异构计算技术全栈的历史、现状和前沿探索情况。通过深入浅出的方式,作者让我们了解到异构融合计算技术在提高计算性能、降低功耗以及节约成本等方面的优势。结合实际案例分析,我们更加确信该技术在未来的发展前景。希望能引起异构计算业界对融合创新技术的关注和讨论。-阚宏伟 紫光集团前沿技术研究院 AI&HPC团队首席专家、团队总经理 VIII 推荐序 6 当前信
16、息产业挑战与机遇并存,数字经济的发展和 AI大模型的涌现奠定了算力的生产力、数据的生产资料地位,同时云计算、领域专用架构(DSA)、开源和 AIoT 技术迅速崛起,种种迹象都在提醒,当前正在孕育着新一代信息技术大变革,我们必须抓住大变革机遇,笃志创新、顺势而为。硬件和计算模式有难以估量的创新发展空间。摩尔定律失效造成算力增长缓慢,这是目前信息产业面临的重要挑战,对于我们是机遇大于挑战。在后摩尔时代,产业界提出了领域专用架构(Domain Specific Architecture,DSA)来应对大数据、人工智能领域对算力增长的需要。云计算的业务形态使得其可以通过将底层异构芯片进行融合、对算力进
17、行抽象和池化,让用户更方便的使用异构芯片和 DSA 架构,可以说云计算正催生全新计算范式。操作系统系统软件迎来场景驱动的创新发展大机遇。操作系统是最为基础的系统软件,在异构芯片、DSA 架构的适配,权衡计算-数据-网络的距离达到最优资源利用,实现异构融合有其不可替代的地位。在“硬件芯片+操作系统+编译器”相结合的基础上,将软硬件协同的边界拓展到运行时组件,实现硬件芯片、操作系统、编译器等的协同设计,可以说软硬件协同适配是未来信息技术的主要发展趋势之一。“异构融合计算技术白皮书”汇聚了领域专家的集体智慧,对计算架构演化、发展趋势、实践案例等进行了全方位的梳理,对信息技术发展具有一定的预见性,必将
18、促使更多专家学者关注和支持异构融合计算的发展。-杨勇 龙蜥社区技术委员会主席、阿里云操作系统研发总监 IX 推荐序 7 在当今快速发展的技术世界中,计算领域的挑战和机遇无处不在。本白皮书深入探讨了计算领域的发展历程和关键问题,提出了异构融合作为计算发展的重要解决方案,给我们在数字时代前进的道路上提供了有价值的指导。众所周知,自动驾驶、元宇宙、人工智能等应用正在塑造我们的未来。然而,这些新兴技术的快速发展也带来了巨大的挑战,尤其是在算力需求方面。本白皮书详细阐述了这些挑战,强调算力成本不断上升,对企业和研究机构构成了重大挑战。白皮书中异构融合计算的概念引发了我们的思考,它为应对算力需求提供了一个
19、行之有效的途径。通过整合多个异构计算系统,我们可以构建更强大、高效的计算架构,为未来的技术应用和创新铺平道路。此外,白皮书强调了行业共同努力和协同创新的重要性。中国科学院微电子研究所在智能计算领域积累了丰富的研究经验并取得了一系列重要成就,研究所也在积极推动跨学科合作,与其他学院、研究机构和行业合作,以推动智能计算领域的研究和创新。我们相信,只有通过全行业的合作,我们才能够应对当前和未来的计算挑战,共同推动技术的发展。本白皮书不仅是对计算领域的一次深入洞察,也是对未来科技趋势的一次引导。希望这份白皮书能够激发更多关于异构融合计算的讨论,为我们共同的数字化未来打下坚实的基础。-乔树山 中国科学院
20、微电子研究所智能感知研发中心副主任/研究员 X 目 录 1 异构计算领域相关概念.1 1.1 异构计算.1 1.2 异构融合计算.1 1.3 其他相关概念.2 1.3.1 ASIC 与 DSA.2 1.3.2 SoC与 SiP.3 2 异构计算的发展及问题.4 2.1 计算架构的发展历程.4 2.1.1 基于单核 CPU的串行计算.4 2.1.2 基于多核 CPU的同构并行计算.5 2.1.3 基于 CPU+xPU的异构并行计算.5 2.2 异构计算技术蓬勃发展.6 2.2.1 异构计算技术成为主流.6 2.2.2 异构计算架构品类众多.7 2.2.3 异构编程软件逐渐成熟.8 2.3 异构计
21、算技术演进困境.8 2.3.1 芯片性能提升陷入瓶颈.8 2.3.2 性能和灵活性难以兼顾.9 2.3.3 异构计算孤岛问题突显.9 2.3.4 异构计算编程框架各异.10 3 异构融合计算技术探索.12 3.1 硬件层面融合技术探索.12 3.1.1 芯片级融合计算架构.12 3.1.2 设备级融合计算架构.17 3.2 软件层面融合技术探索.21 3.2.1 面向异构软件优化技术分析.21 3.2.2 面向异构融合的操作系统.24 3.2.3 面向异构融合的编程框架.26 3.3 系统层面融合技术探索.28 3.3.1 数据中心融合.28 3.3.2 新型计算模式融合.32 4 异构融合计
22、算发展趋势.33 4.1 通用性与高性能统一.33 4.2 计算架构走向收敛.34 4.3 编程复杂度降低.34 4.4 基础组件优化.35 5 异构融合计算发展建议.36 5.1 加强政策引导,布局重点项目建设.36 5.2 构建标准体系,强化融合技术牵引.36 5.3 聚焦关键技术,推动计算技术创新.36 5.4 加速产业变革,促进新型技术应用.37 附录 异构融合计算实践案例.381 1 异构计算领域相关概念异构计算领域相关概念 1.1 异构计算异构计算 异构计算(Heterogeneous Computing)是指不同类型指令集和体系结构的处理器组成的系统计算方式。CPU 和其他处理引
23、擎最大不同在于:CPU是 Self-Control(图灵完备的),可以独立运行,其他加速处理器需要在 CPU 的协助下运行。因此,异构计算通常是指CPU+xPU的异构计算架构(xPU泛指其他各类非 CPU的加速处理器)。依据指令的复杂度,处理器引擎分为 CPU、Coprocessor(协处理器)、GPU、FPGA、DSA和 ASIC等,如图 1-1,从左向右,单位计算依次复杂,性能逐渐提升,但灵活性不断降低。图 1-1 不同典型处理器间性能与灵活性对比图 协处理器集成在 CPU 内部,用于协助 CPU 处理特定的计算任务;加速处理器(如GPU、FPGA等)专注于特定类型的计算任务。目前主流的异
24、构计算形态主要有三种:基于 GPU 的异构并行。GPU 异构加速本质是众多并行的高效能通用处理器,通过调用 CUDA等编程模型和工具实现多线程处理,适用于大规模的并行计算。基于 FPGA 的异构并行。FPGA 具备硬件弹性的特征,可以根据需要进行配置和编程,以实现不同的计算任务和算法加速,具有高并行度和高可靠性,适合进行定制计算。基于 DSA 的异构并行。CPU 和 DSA 共同构成异构计算系统,DSA 可以在定制ASIC的基础上进行回调,主要用于加速计算密集型任务。异构的目标是将任务分解为计算上同构的子任务,然后将每个子任务分配给最适合执行的计算资源(或并行模式)。异构系统通常是由使用不同类
25、型指令集和体系架构的计算单元组成的,常见的计算单元类别包括 CPU、GPU、ASIC、FPGA 等。与同构系统相比,异构计算系统代码执行时间更短。1.2 异构融合计算异构融合计算 Intel 于 2019年提出“超异构计算”的概念,强调了超异构计算涉及的三个方面:系统架构、工艺和封装,以及统一的异构计算软件。但在最核心的系统架构层次,Intel 仅仅只强调了“多”,并没有进一步对超异构计算进行阐述,以及设计实现的进一步细节说明。“异构融合计算”是一个全新的概念,目前行业还没有形成统一的定义。从概念上讲,“异构融合计算”属于异构计算的范畴,可以定义为异构计算的一种高阶形态。2 图 1-2 Int
26、el 超异构计算三大要素 本白皮书认为,狭义的“异构融合计算”,是一种新的计算架构和方法,通过融合CPU 和多种不同类型、不同架构的加速处理器,以实现更大规模、更高性能、更加高效的计算。而 广义的“异构融合计算”,则通过不同层次、不同类型的技术整合,来实现异构融合计算资源的高效利用。广义的异构融合计算,主要包含以下几方面内容:超异构超异构:系统中异构处理器的数量为三个或三个以上。“一个称为同构,两个称为异构,三个或三个以上称为超异构”。超异构是异构融合计算的前提。硬件融合硬件融合:强调不同处理器之间的深度协同(指单个工作任务由两个或两个以上处理器协作处理)和深度融合(指某个具体工作任务可以跨
27、CPU、GPU 和 DSA 等不同类型处理器运行,也可以跨同类型中的不同架构处理器运行)。各处理器之间可以通过高速总线或高性能网络进行通信和数据传输,通过更高层次的系统划分和任务调度实现协同计算。软件融合:软件融合:面向异构(硬件)计算环境,将操作系统、应用软件、编程模型、编程语言、通信协议、数据等技术资源进行融合和优化,提供统一的软件运行环境和编译开发工具,旨在降低异构融合计算系统的复杂度,实现计算任务的跨平台运行。系统融合:系统融合:通过合理地任务分配和资源调度,异构融合计算系统可以实现更高的计算性能和更好的计算效率。传统异构计算,特指 CPU+xPU 的计算架构。异构融合计算与传统异构计
28、算的差异点在于:传统异构计算仅有一种加速处理器类型,并且仅关注 CPU 和加速处理器的协同;而异构融合计算则具有两种或两种以上的加速处理器类型,并且需要重点关注所有处理器之间的协同和融合,以及硬件与软件之间的融合、系统内部及系统之间的融合问题。1.3 其他相关概念其他相关概念 1.3.1 ASIC 与与 DSA ASIC(Application-Specific Integrated Circuit,专用集成电路)是指应特定需求而设计、制造的集成电路,与通用集成电路(General Purpose IC)相比体积更小、功耗更低、成本更低。一般来说,ASIC 处理引擎的指令复杂度最高,其理论性能
29、最佳,但实际上受限于多3 种因素影响,ASIC 的问题也较为突出:ASIC是场景和硬件设计强耦合,硬件开发难度高;功能利用率低,导致资源效率也相对较低,并且难以实现超大规模的 ASIC 设计。ASIC难以满足复杂计算场景的差异化需求。包含两个方面:一是横向的不同用户的差异化需求,二是纵向的单个用户的长期快速迭代需求。即使同一场景下,不同厂家的ASIC引擎设计依然五花八门,毫无生态可言。DSA(Domain-Specific Accelerator,特 定 领 域 加 速 器;也 称 为 Domain-Specific Architecture,特定领域架构),可根据特定应用场景定制处理引擎甚至
30、芯片,支持部分软件可编程。DSA 的设计和实现需要考虑特定领域的特征和需求,包括算法、数据结构和最佳实践等。DSA 一定程度上解决了 ASIC 的一些问题:灵活性问题:ASIC由于其功能确定,只能通过一些简单的配置控制硬件运行,其功能比较单一。而 DSA 则支持一定可编程能力,实现了一定程度上的软硬件解耦,使得其可以在特定领域,可实现对用户场景横向和纵向差异性需求的覆盖。应用领域扩大:DSA 支持可编程能力,使得其功能覆盖的领域范围相比 ASIC 要多。DSA架构的处理引擎在满足系统灵活性要求的情况下,可实现最极致的性能,以及最佳的性价比。1.3.2 SoC 与与 SiP SoC(System
31、 on Chip,片上系统),是一种将多种电子组件集成在一个芯片上的复杂系统。这些组件可以包括 CPU、内存、I/O接口、各种传感器和执行器等。在 SoC 中,通过先进的电路设计和封装技术实现将不同的组件集成到一个芯片上。这种集成方式可以大大减少系统的体积和功耗,提高系统的可靠性和性能。同时,SoC 还可以通过硬件和软件的协同设计,实现系统的优化和定制化。SiP(System in Package,系统级封装)是一种先进的封装技术,它将多个具有不同功能的有源电子元件与可选无源器件、MEMS(微机电系统)器件、光学器件等其他器件优先组装到一起,实现一定功能的单个标准封装件,形成一个系统或者子系统
32、。这种封装技术体现了将各种功能芯片,包括处理器、存储器等芯片集成在一个封装内的概念。SiP 类别可以根据不同的组装方式和功能进行分类,常见的 SiP 类别包括:2D SiP:这是最常见的 SiP 类型,通过在平面上排列多个芯片实现不同功能。这些芯片可以是不同类型的有源器件。3D SiP:在 3D SiP 中,芯片被堆叠在一起,以实现更高的集成度和更小的封装尺寸。MIP(Multiple-chip-in-Package):MIP 是一种将多个独立的芯片(可以是不同类型的有源器件或无源器件)组装在一个封装内的技术。PiP(Package in Package):这是一种将一个封装件(如 SoC)与
33、其他器件(如 MEMS、光学元件等)组合在一起的技术,形成一个更复杂的系统级封装。SiP 与 SoC 在实现系统级集成方面有相似的目标,但它们在集成程度、功能模块、封装尺寸和系统性能方面存在一定的区别。SiP 更注重将不同功能芯片和其他器件组装在一起,实现一定功能的系统或子系统;而 SoC 则通过将整个系统或部分系统集成到单个芯片上,实现更高的集成度和更好的性能表现。4 2 异构计算的发展及问题异构计算的发展及问题 2.1 计算架构的发展历程计算架构的发展历程 图灵奖获得者 John Hennessy总结了计算机体系结构演进的四个时代和即将兴起的第五个时代:第一代,晶体管时代,指令集架构出现之
34、前,计算机架构各不相同;第二代,小规模和中等规模集成电路时代,出现支持指令集架构的 CPU处理器;第三代,大规模和超大规模集成电路时代,指令级并行以及 CISC 和 RISC 混战;第四代,超大规模集成电路的多核处理器并行时代;第五代,超大规模的领域专用处理器(DSA)时代。上述计算机体系结构的时代划分,是站在单处理器引擎视角进行的。本白皮书参考上述五个时代的划分,站在多处理器引擎计算架构从简单到复杂的发展视角,提出了如下的发展阶段划分:第一阶段,基于单核 CPU的串行计算;第二阶段,基于多核 CPU的同构并行计算;第三阶段,基于 CPU+xPU的异构并行计算。2.1.1 基于单核基于单核 C
35、PU 的串行计算的串行计算 在 CPU 之前,传统计算机通常被称为“固定程序计算机”(Fixed-Program Computer),其线路必须被重设才能执行不同的程序,通常需要花费长达三周的时间。而CPU 微处理器通过支持跳转、调用等控制类指令,使得计算机可以执行各种复杂的计算和数据处理任务。CPU 的这种设计理念实现了软件与硬件的解耦。即在更新程序的时,硬件不需要改变。在这种架构中,软件开发是基于串行计算的思维,程序或问题被分解成一系列离散的指令,这些指令被顺序地送到单个处理器执行。单核 CPU 的串行计算模式奠定了现代计算机系统的基础。图 2-1 单核 CPU串行计算示意图 从上世纪 7
36、0-90年代,CPU处理器的一些重要发展和变化:指令集架构:宏观架构有精简 RISC和复杂 CISC 路线之争。微架构创新:CPU处理器中出现了各种各样的微架构创新技术,如处理器流水线、乘法/除法器等复杂执行单元、指令多发射、乱序执行、缓存等。数据位宽:处理器数据位宽从 4 位到 8 位到 16 位到 32 位,再到目前主流的 64位。5 2.1.2 基于多核基于多核 CPU 的同构并行计算的同构并行计算 IBM 公司于 2001 年推出 IBM Power4 双核处理器,是世界上第一款多核处理器。随后,AMD 和 Intel 分别推出了各自的双核处理器。随着技术的创新迭代,更多的 CPU 核
37、被集成到了 CPU 芯片。目前,最新的 AMD EPYC 9654 CPU 具有 96 个核心,192 个硬件线程的超高并行计算能力。图 2-2 多核 CPU同构并行计算示意图 并行计算(Parallel Computing)是通过扩大问题求解规模,解决大型而复杂的计算问题。并行计算主要分为时间上的并行和空间上的并行。时间上的并行是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算,以此扩大问题求解规模。1967 年,吉恩阿姆达尔(Gene Amdahl)提出阿姆达尔定律。并行性的理论性能提升受任务顺序部分的限制。阿姆达尔定律证明了处理器数量的增加带来的收益会递减。一方面受系统工作任
38、务并行特征的约束,另一方面,受单芯片设计规模上限的约束,通过多CPU同构并行的方式提升性能,也逐渐的达到了上限。2.1.3 基于基于 CPU+xPU 的异构并行计算的异构并行计算 基于 CPU+xPU 的异构并行计算广泛应用于高性能计算、人工智能等领域。CPU 和xPU(如 GPU、FPGA 或其他类型的加速器)协同工作,CPU 负责控制和管理系统的运行,处理操作系统级别的任务,xPU则专注于执行大规模计算密集型任务。(一)基于(一)基于 GPU 的并行计算的并行计算 2006 年,NVIDIA 发布了第一款真正意义上的通用 GPU:Tesla 架构 GPU;同年,NVIDIA 发布了 CUD
39、A框架,这标志着基于 GPU 处理器并行计算的诞生。GPU 由数百至数千个计算核心(流处理器或计算单元)组成的并行计算引擎。GPU 众核和 CPU多核的区别在于:CPU核是高性能的大核,具有高性能的同时也变得更加复杂,单位计算的功耗面积等成本较高;而 GPU 核是高效能的小核,虽然每个核的性能较低,但单位计算的功耗面积等成本也较低;CPU 擅长处理串行任务,而 GPU 则更适合处理并行任务。深度学习以及 AI 大模型的兴起及快速演进,使得 GPU 成为最佳的加速计算平台。但,较之 ASIC和 DSA,GPU的性能效率仍有较大差距。(二)基于(二)基于 DSA 的并行计算的并行计算 Google
40、于 2016年发布了第一款 DSA架构的处理器:TPU(Tensor Processing Unit)。6 之后,各类符合 DSA 概念的加速处理器如雨后春笋般涌现。TPU 作为一个独立的加速处理器(TPU v1 为独立加速器,TPU v2 集成了 CPU),通过 PCIe 总线与 CPU 连接,被专门设计用于处理和执行深度学习中大规模的张量运算,即多维度的数组运算,以增强并行计算的能力。TPU 独立完成整个推理模型的运算,极大地减少了与 CPU 的交互,提高了计算效率。指令通过 PCIe 总线迅速地从 CPU 传输到 TPU的指令缓冲区,确保数据流畅无阻。TPU 的矩阵乘法单元是其计算的核心
41、,专门用于处理机器学习任务中的大规模矩阵运算。性能和功耗之间的关系是决定计算设备选择的核心因素。为了满足大规模计算的需求,从 CPU 到 GPU,再到 TPU(DSA),每一个技术进步都带来了性能的显著提升。基于DSA的异构加速,具有相对好的性能效率,也具有一定的灵活可编程性。(三)基于(三)基于 FPGA 的并行计算的并行计算 FPGA(Field Programmable Gate Array)是在 PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上的半定制电路,或叫可编程的逻辑列阵。FPGA 基本结构包括可编程输入输出单元、可配置逻辑块、数字时钟管理模块、内嵌专用硬核,
42、底层内嵌功能单元等。各模块之间或模块与 I/O 间的联接方式,最终决定了 FPGA 所能实现的功能,FPGA允许无限次的编程。相较于 GPU 或 CPU,FPGA 能够实现更低的数据处理延迟;与专用集成电路(ASIC)相比,FPGA 提供了更大的硬件灵活性,允许开发者根据需要进行硬件编程和定制。这样的灵活性弥补了定制电路的一些局限性,同时具备比传统可编程逻辑更高的逻辑门数量,从而实现复杂的计算任务。(四)基于(四)基于 CGRA 的并行计算的并行计算 CGRA 可重构计算(Coarse-grained Reconfigurable Architecture)是一种以空域为基础的并行计算架构,它
43、通过空域硬件结构组织不同粒度和功能的计算资源。与传统的指令驱动计算架构不同,CGRA 在运行时根据数据流的特点进行硬件配置,让计算资源形成相对固定的计算通路,从而以接近“专用电路”的方式并行计算。这种结构既减少了取指和译码的延时及能耗,又能以专用电路的方式高效执行。当面临不同的算法和应用时,可以通过重新配置达到硬件的重构,以适应不同的任务。这使得 CGRA 特别适合那些需要高能效和灵活性的应用场景,如云计算和边缘计算。2.2 异构异构计算技术蓬勃发展计算技术蓬勃发展 2.2.1 异构计算技术成为主流异构计算技术成为主流 在上世纪 80 年代中期之前,基于复杂指令集(CISC)的 CPU 单核性
44、能增长由技术驱动,平均每 3.5 年翻一番;从 1986 年开始,以精简指令集(RISC)为代表的更先进架构的处理器性能平均每 2 年翻一番;随着登纳德缩放定律的逐渐失效、阿姆达尔定律的充分挖掘,CPU 性能的提升已经越来越难;自 2015 年之后,CPU 性能提升平均每年仅有 3%,实现性能翻倍可能需要 20年。同时,CPU架构主要面向广泛的通用计算场景,控制单元、缓存、寄存器等占据大量的硅面积,算力密度低,运算单元少,不适合人工智能领域的高并发密集的向量、张量计算,整体计算效率低。在最前沿的 AI 深度神经网络模型训练领域,所需算力在 2012-2018 年共 6 年时间里增长了超过 30
45、 万倍;在智能汽车领域,随着 AI 大模型的广泛使用,以及娱乐需求快速增长,自动驾驶(L4/L5 阶段)多域融合的综合算力需求预计超过 20000 TOPS。面对指数级提升7 的算力需求和密集多样计算需求,单纯依赖 CPU 一种计算架构已经无法满足,结合不同架构的异构计算已成为主流计算模式。图 2-3 1978-2018年间 CPU性能提升示意图 当前,人工智能领域主要采用 CPU+xPU(GPU/FPGA/DSA/ASIC 等)的计算架构,高性 能计 算领域 主要 采用 CPU+GPU 的 异构计算 架构,手机 SoC 芯片 通常 采用CPU+GPU+DSP+ISP 计算架构,智能便携设备主
46、要采用 CPU+DSP+语音识别技术计算架构。异构计算技术已经成为超级计算机、嵌入式系统、人工智能等领域的主流计算模式,未来还有望在更多领域得到应用和发展。2.2.2 异构计算架构品类众多异构计算架构品类众多 异构计算架构,通过集成不同类型的计算资源,如 GPU、FPGA、DSA 和 ASIC 等,以满足需求各异的计算任务。场景(Scenario)是领域(Domain)的子集。比如 AES 加解密是一个具体的场景,而安全则是一个领域;比如某个特定的 AI 算法是一个具体的场景,而 AI 则是一个领域。也因此,针对不同类型处理器的领域和场景覆盖,我们可以得到如下一些结论:ASIC:面向单个领域的
47、单个具体场景;DSA:面向单个领域的多个场景;GPU:面向多个领域;CPU:面向几乎所有领域;FPGA:其灵活性体现在硬件编程层次,在架构上可以是 ASIC、DSA、GPU或 CPU等任意类型处理器,要根据 FPGA具体实现的硬件架构确定其场景和领域覆盖。异构计算架构的品类众多,并且不同的品类具体的架构实现也不尽相同。按照不同的异构计算形式进行分析:基于 GPU的异构:头部厂商占据了主要市场,GPU异构计算架构相对集中。基于 FPGA 的异构:由于 FPGA 的硬件编程性,架构设计由用户做主,因此 FPGA架构多种多样、品类繁多。基于 DSA/ASIC 的异构:面向应用领域和场景各异、每个厂商
48、芯片架构实现的方式各异;甚至,由于业务迭代的影响,同一个厂家不同代产品的架构也有可能不同。在DSA/ASIC 异构里,异构计算架构的碎片化现象最为凸显。8 在体系结构的黄金年代,异构处理器多样化是时代的潮流。在众多异构计算架构中,如何实现平衡性能与灵活性,并从系统层面上以更低的成本获取更大的算力、更多的领域覆盖,则是异构计算架构发展的重点。2.2.3 异构编程软件逐渐成熟异构编程软件逐渐成熟 随着异构计算的发展和广泛应用,异构编程技术也逐渐成熟。异构编程是指通过编写软件来调度异构计算平台进行计算,其成熟性主要体现在三个方面:在平台支持方面,主流的异构计算平台都提供了相应的开发工具和编程模型,以
49、支持异构编程。例如,NVIDIA 提供的 CUDA 编程模型;Xilinx 和 Intel 等芯片厂商提供了相应的开发工具和软件库(OpenCL编程模型),以便于开发者针对 FPGA 进行优化和编程。在编程模型方面,针对异构计算的编程模型也在不断完善和发展。传统的编程模型如Intel/AMD CPU 的 x86 指令集并不是为异构计算而设计的,不能充分利用异构计算架构的优势。因此,专门面向异构计算架构的异构并行编程模型应运而生,如 NVIDIA 的 CUDA、寒武纪的 MagicMind 等。这些编程模型提供了更高层次的抽象和更丰富的语义,降低了异构编程的难度,同时充分发挥了异构计算的优势,目
50、的是让开发者可以更加轻松地进行异构并行编程。在优化工具和框架方面,为了提高异构计算的效率,研究人员和厂商们开发了各种优化工具和框架。这些工具和框架提供了各种编译、调度、调试和优化的功能,以帮助开发者实现高效的异构计算。例如,与 GPU 相关的优化工具有 CUPTI 和 NVIDIA Nsight 等,用于性能分析和调试;与 FPGA 相关的优化工具有 Vivado 和 Quartus 等,用于逻辑综合和时钟优化。简而言之,越来越多的案例表明了异构编程正在逐渐成熟,不仅有全栈的软硬件平台支持、便于使用的编程模型,还有优化加速工具链。2.3 异构计算技术异构计算技术演进演进困境困境 异构计算技术已
51、经广泛应用于多个领域,如云计算、边缘计算、高性能计算等。但异构计算也逐渐面临性能瓶颈问题,同时面临性能和灵活性难以兼顾、编程框架不统一等问题,需要对异构计算的相关问题进行进一步的分析研究,并寻找可能的解决方案。2.3.1 芯片性能提升陷入瓶颈芯片性能提升陷入瓶颈 以 AI 大模型发展为例,随着 BERT 和 GPT 等大模型的发展,其算力需求每 2 个月提升一倍。单个异构计算设备的性能提升有限,只能通过扩大计算集群规模的方式来满足算力快速提升的需求。然而,受限于集群效率,目前上千台服务器和上万张 GPU 加速卡的AI计算集群基本达到集群规模的上限。单个计算芯片的性能提升已经陷入瓶颈,主要有如下
52、几个原因:摩尔定律放缓:随着制程工艺不断缩小,摩尔定律的推进速度已经放缓,单纯依靠增加晶体管数量来提升性能的效果逐渐减弱。能源和散热限制:随着芯片制程工艺的进步,晶体管的体积不断缩小,但同时也带来了更高的功耗和热量产生。在有限的能源和散热条件下,单纯追求性能提升将导致芯片的可靠性和使用寿命下降。软件和硬件的协同优化不足:为了充分发挥硬件性能,需要与之相应的软件和算法支持。但在实际应用中,软件和硬件之间的协同优化并不总是能够实现,导致部分硬件性能无法有效发挥。9 阿姆达尔定律的原则:并行性的理论性能提升受任务顺序部分的限制。在优化计算机系统性能时,不仅需要考虑单个处理器的性能,还需要考虑如何并行
53、化计算任务,以充分利用多核处理器的优势。也因此,通过多核并行来提升综合性能的收益也在逐渐递减。为了突破性能瓶颈,未来的计算技术需要从多层次、多方面进行创新,包括新型计算架构、高效能算法、统一编程模型、以及软硬件系统级的融合优化等。2.3.2 性能和灵活性难以兼顾性能和灵活性难以兼顾 性能与灵活性在不同的加速处理器上呈现出不同的特点和挑战:GPU虽然在灵活性上表现良好,但性能效率相对不够极致,并逐渐面临性能瓶颈。DSA 在领域特定性能上卓越,但灵活性有限,难以应对多变的算法需求。其硬件和软件架构的碎片化使其实际应用困难。FPGA 尽管具有较高的灵活性,但其功耗和成本较高,主要用于原型验证,实际落
54、地案例相对较少。ASIC功能固化,缺乏足够的灵活性以满足多变和复杂的计算场景。其中,DSA代表了性能与灵活性的细微平衡。DSA的特点在于为特定领域提供专用的优化,使其在某些场景下可以达到 ASIC相近的性能,但仍保持一定的灵活性。DSA 的优势是领域定制,劣势也在于领域定制。领域定制的优势表现在以下几个方面:性能优越:DSA 技术通过将多个处理器核心连接到一个共享内存区域,实现了处理器之间的高效数据交换和协作。这使得 DSA 在处理大规模数据和复杂任务时具有较高的性能表现。灵活性高:DSA 技术可以根据实际应用需求,灵活配置处理器核心和内存资源的比例,以满足不同场景下性能和资源需求的平衡。此外
55、,DSA 还支持动态地添加或删除处理器核心,使得系统可以根据任务变化进行自适应调整。易于扩展:DSA 技术具有良好的可扩展性,可以通过增加处理器核心数量来提高系统的整体性能。这使得 DSA 在处理大规模数据和复杂任务时具有较大的潜力。容错能力强:DSA 技术采用了冗余设计,当系统中某个处理器核心出现故障时,其他核心可以接管其任务,保证整个系统的正常运行。领域定制的劣势表现在以下几个方面:适用范围有限:由于 DSA 技术针对特定领域进行优化,因此其在非定制领域的适用范围有限。对于一些通用计算任务,DSA 可能无法达到预期的性能提升。开发和维护成本高:为了充分发挥 DSA 的性能优势,需要针对具体
56、应用进行优化和适配。这意味着开发者需要投入更多的精力进行硬件和软件设计,提高了开发和维护成本。技术成熟度较低:相较于传统架构,DSA 的技术成熟度较低。在实际应用中,可能会遇到更多的技术挑战和问题,这限制了 DSA 技术的广泛应用。兼容性问题:由于 DSA 技术采用了特定领域的定制设计,可能导致与其他硬件和软件系统的兼容性问题。在使用过程中,可能需要额外的适配和优化工作。在异构计算中,不同的处理器各有优势和劣势,选择最适合的处理器取决于特定应用的性能和灵活性需求。尽管 DSA 提供了一种介于高性能 ASIC 和灵活的通用处理器之间的解决方案,但其在某些迅速变化的领域中仍面临着挑战。未来的技术研
57、究应集中在如何实现性能和灵活性的更好平衡。2.3.3 异构计算孤岛问题异构计算孤岛问题突显突显 随着异构计算在各领域的应用落地,多异构共存的异构计算孤岛问题也逐渐突显。多10 异构计算的硬件层次高集成度和系统软件层次多协同、通用编程模型和开发环境,已成为行业亟需解决的问题。图 2-4 从同构到异构再到多异构的演进 各领域加速器难以全局协同:不同的加速器在处理特定领域的问题时表现出色,但相互协同能力差,可能导致系统整体的性能下降。协同能力差主要体现在两个方面:不同的加速器的存储器和内存管理机制不同,导致数据访问和传输方式复杂,数据通路难以协同;多个加速器的控制机制不同,导致它们之间的同步和协调,
58、需要复杂的并行控制机制和算法。各领域加速器之间交互困难:不同类型的加速器之间进行通信和数据交换需要使用特定的接口和机制,增加了开发的复杂性和难度;频繁大量的通信和数据交换,导致数据传输的延迟和开销巨大。中心单元的性能瓶颈问题:在异构系统中,通常有一个中心单元(如 CPU、DPU)负责协调和管理其他硬件加速器的工作。然而,当加速器数量增多或任务复杂度增加时,这可能导致资源负载的不均衡分配,中心单元的性能瓶颈问题会愈发突出。物理空间无法容纳多个异构加速卡:由于物理空间的限制,系统中只能容纳有限数量的加速卡。这限制了系统可扩展性和性能的提升空间。2.3.4 异构异构计算编程框架各异计算编程框架各异
59、不同的异构计算编程框架都拥有其独特的特性和适用环境,开发者在编写程序时需要依据实际需求和硬件设备选择最适合的框架。由于硬件的独特性质,每种硬件都配备了专用的编程框架、加速库和编程语言。例如,CUDA 是由 NVIDIA 推出的并行计算平台和编程模型,它允许开发者利用 NVIDIA GPU 进行通用计算。OpenCL 的目标是为多种硬件提供统一的开放标准。SYCL 是 Codeplay 公司开发的基于 C+的并行计算 API,支持跨平台多设备,包括 CPU、GPU 和其他加速器。Thrust 是 C+版的 CUDA,提供了类似于 STL 的接口,便于开发者进行 GPU 加速的并行计算。AmpxA
60、I 是由 AMD 开发的基于 Python 的并行计算库,可在 AMD 的 GPU 上实现高效的计算。这就要求开发者掌握多种编程模型和语言,使得代码移植面临巨大的挑战。例如,专为 GPU 编写的代码通常无法直接在 CPU 或 FPGA 上运行,这不仅限制了代码的可移植性,也增加了开发成本和时间。即使有统一编程模型的支持,要实现高效的代码仍需要针对特定硬件进行手动优化,这无疑增加了编程的复杂性和开发周期。虽然业界提出了多种方法试图建立统一的异构计算编程框架,以简化开发过程并解决这些挑战,但至今仍未找到完美的解决方案。因此,寻找一个真正统一、能满足所有硬件和应用需求的编程方法,仍然是计算领域的热门
61、研究课题。12 3 异构融合计算技术探索 随着计算模式从集中式的单节点计算逐渐走向分布式的多节点协同计算,计算系统变得越来越复杂。异构融合计算技术,不仅仅需要芯片级、设备级等硬件层面技术的支撑,还需要操作系统、编程框架以及跨平台等多种软件层面技术的支持,以及数据中心和新型计算模式等系统层面技术的全力配合。通过整个系统的全方位软硬件协同工作,来达到异构的融合,从而实现异构融合系统更大的价值。3.1 硬件层面硬件层面融合技术探索融合技术探索 3.1.1 芯片级融合计算架构芯片级融合计算架构 2015 之后,摩尔定律逐渐放缓,集成电路发展进入后摩尔时代,集成电路的整体发展路线可以概括为四个方向:“M
62、ore Moore”:延续摩尔定律,在缩小尺寸的同时,集成更多的组件,实现功能完整的片上系统(SoC);“More than Moore”:扩展摩尔定律,通过先进封装技术,把不同的功能组件封装在一起,实现系统级封装(SiP);“Beyond Moore”:超越摩尔定律,探索量子计算、类脑计算、电子器件等新型半导体技术,突破硅基半导体的技术壁垒;“Much Moore”:丰富摩尔定律,随着计算机学与物理学、数学、化学、生物学等学科交叉碰撞,形成新的发现与科学技术突破。其中,“Beyond Moore”和“Much Moore”属于更加前沿的技术路线,大多处于实验探索阶段,芯片级融合的技术主要聚集
63、于“More Moore”和“More than Moore”两条路线,关键技术主要包括:基于 NoC 的 SoC 设计融合技术、基于 Chiplet 的 SIP 封装融合技术、晶圆级芯片融合技术。图 3-1 集成电路的整体发展路线(图片来源于网络)(一)芯片级相关技术分析(一)芯片级相关技术分析 13 (1)SoC 设计技术设计技术 SoC 设计的关键技术主要包括:NoC 架构技术、IP 核可复用技术、软硬件协同设计技术、SoC 验证技术、可测性设计技术、低功耗设计技术、超深亚微米电路实现技术等。SoC 设计技术可以降低系统板上因信号在多个芯片之间进出带来的延迟而导致的性能局限,提高系统的可
64、靠性、降低总的系统成本。NoC 是目前大规模芯片内部互联的最主要通信架构,通过芯片内实现类似于网络的架构,包括目标的处理单元(PE)、交换节点(routers)和互连线(wires),这种互联结构相比传统交叉开关(Crossbar)总线具有可扩展性好、并发性强等特点。随着 SoC 集成度越来越高,NoC拓扑结构主要有两种,分别是直接型拓扑和间接型拓扑。直接型拓扑结构:所有的路由节点均与计算资源相连,并通过双向链路直接连接。常见的直接型 NoC拓扑包括 2D网格型(Mesh)NoC、花托型(Torus)NoC以及超立方体型(Hypercube)NoC。网络是由交换节点和互连线构成的,每个节点连接
65、一个处理单元(RE)和上下左右四个相邻的路由器,每个处理单元通过一个网络接口(Net-Interface NI)连接着一个路由器。其中的处理单元可以是处理器核、内存、用户自定义硬件模块或者其他任何可以插入插槽并且可以和网络接口相配的 IP(Intellectual Property)模块。路由器和路由器之间,路由器和资源之间是由一对输入和输出通道连接。通道是由两条单向的点对点总线组成。2D网格型(Mesh)是典型的直接型 NoC拓扑,如图 3-2 所示:图 3-2 基于 NoC的 2D网格型 SoC示意图 间接型 NoC 拓扑:指网络中存在一些不与计算资源相连的专门路由节点(开关节点),各个路
66、由节点之间不一定是直接通过双向链路相连接,而可能是通过这些专门的开关节点相连。常见间接型拓扑包括蝶形拓扑、Clos、Banyan、Fat-Tree 拓扑等。间接型拓扑由于其网络拓扑以及路由算法相对较复杂。SOC 芯片作为系统级芯片,具有两个显著特点:一方面是 SoC 芯片的晶体管规模庞大,一颗芯片的晶体管数量为百万级至百亿级不等;另一方面,SoC 可以运行处理多任务的复杂系统,即 SoC 芯片需要软硬件协同设计开发。SoC 庞大的硬件规模导致其设计时通常采用 IP 复用的方式进行设计,IP 是指 SoC 芯片中的功能模块,具有通用性、可重复性和可移植性等特点。在 SoC 芯片研发过程中,研发人
67、员可以调用 IP,减少重复劳动。缩短研发周期,降低开发风险。SoC 芯片设计难度高、综合性强、体系结构复杂,涉及 SoC 芯片总体架构、各种关键 IP 以及总线、无线连接技术等多个领域的技术。(2)SiP 封装技术封装技术 SiP 是从封装的立场出发,对不同芯片进行并排或叠加的方式封装,将多个具有不同功能的有源电子元件与可选无源器件,以及诸如 MEMS 或者光学器件等其他器件优先组装14 到一起,实现一定功能的单个标准封装件。Chiplet 是在完成 SiP 的过程中使用一种新的芯片设计理念,Chiplet 是 SoC 单芯片集成发展到一定程度之后的一种新的芯片设计方式,它从系统端出发,首先将
68、 SoC 复杂功能进行分解,然后开发出多种具有单一特定功能、可相互进行模块化组装的裸芯片(如实现了数据存储、计算、信号处理、数据流管理等功能),再将这些模块化的芯粒(裸片)互联起来,采用新型封装技术,将不同功能不同工艺制造的芯粒封装在一起,成为一个异构集成芯片,如图 3-3所示:图 3-3 单芯片与芯粒集成图 Chiplet 芯片设计具备三大优势:快速开发、低成本、多功能;借助先进的封装技术,芯粒可以集成各种不同的架构、不同的工艺节点,甚至是来自不同代工厂的专用硅块或 IP块,可以快速定制一款满足多种功能的产品;由于 Chiplet 由不同的芯片模块组成,可以在特定设计部分选择最先进的技术,而
69、在其他部分选择更成熟、更廉价的技术,从而节省整体成本;Chiplet 解决方案具有良好的可扩展性,可以充当异构处理器,将 GPU、安全引擎、AI 加速器等不同处理元素任意组合,为各种应用需求提供更丰富的加速选项。Chiplet封装主要分为 2.5D封装和 3D封装两条技术路线:2.5D 封装:横向堆叠芯片,在传统的地基上增加硅中介层(interproser),把芯片之间、芯片与存储之间的连线封装在硅中介层中,可提供近似在同一个芯片内的互联性能。英特尔的 H100 采用 2.5D 封装集成 GPU 与 HBM,AMD 的 MI300A 采用 2.5D 封装集成GPU与 CPU。代表技术有台积电的
70、 CoWoS、英特尔的 EMIB。图 3-4 2.5D Chiplet 封装示意图 3D 封装:纵向堆叠芯片,不同于 2.5D 封装,3D 封装是一种晶圆对晶圆(Wafer-On-Wafer)无凸起的键合(Bonding)技术,在垂直方向上堆叠芯片和存储,各层通过硅通孔(TSV)通信,通信路径更短。英特尔和 AMD 的 GPU集成的 HBM通过 3D封装提升容量,MI300A 则把 CPU 和 GPU 通过 3D 封装集成在基础 I/O 芯粒上。代表技术有台积电的InFO-3D、英特尔的 Foveros。15 图 3-5 3D Chiplet封装示意图 与过去把多个 IP 核集成封装到一个芯片
71、中的不同,Chiplet可以结合不同公司设计和封装的技术,构建更高效、更经济的芯片系统。这种设计方法简化了芯片设计的复杂性,而且有效地降低了设计和生产成本。(3)晶圆级芯片技术)晶圆级芯片技术 晶圆融合技术核心设计理念:在这种架构中,充分利用晶圆尺寸是首要考虑因素。为了适应大规模的计算需求,重点放在了系统的晶圆内互联上,而不再追求单核的超高性能。轻量级计算核心/处理单元(PE):架构采用轻量级的计算核心,不再追求每个核心的超高性能,强调能够更好地适应大规模并行计算的特点。片上/片间互联(NoC/NoP):架构使用对称互联方式,减少了不同层级之间的带宽逐级收敛,从而提高了通信效率。存储层次:架构
72、在内存层次结构上采用了非一致性内存访问(NUMA)架构,结合了局部共享内存的特点,以更好地适应大规模并行计算的内存访问模式。集群互联:从基于芯片的 3D 拓扑结构转向基于晶圆的 2D拓扑结构,这种拓扑结构更适合大规模集群内部的通信和协作。硬件冗余设计和 Partial Good 策略:由于晶圆级制造难以保证百分之百的良率,架构引入了硬件冗余设计和更完备的 Partial Good 策略,以应对硬件缺陷对系统性能的影响。硬件 Defect处理:针对晶圆级制造过程中可能出现的硬件缺陷,这种架构采取了一些策略来减少硬件缺陷对整个系统的影响,例如避免裸片(未封装芯片)的缺陷,同时在封装过程中采取措施来
73、降低缺陷率。(二)芯片级融合(二)芯片级融合技术探索技术探索(1)基于)基于 NoC 的的 SoC 设计技术发展趋势设计技术发展趋势 根据算力的快速增长需求,以及异构融合的发展大趋势,作为芯片设计集成/融合的主要方式,基于 NoC的 SoC设计技术的发展主要有如下一些趋势:异构系统支持:多种类型的处理器和加速器的异构系统正在普及。NOC技术能够支持不同类型的处理器之间的高效通信和协同工作。更高的集成度:随着芯片制造技术的进步,芯片上可以集成更多不同类型的处理器核心、存储单元和功能模块。NOC 技术将面临更高的集成度要求,以支持更多核心之间的通信和数据传输。更高的带宽和更低的延迟:新型应用对数据
74、传输带宽和延迟要求更高。NOC技术将朝着提供更高的带宽和更低的通信延迟方向发展。可编程性和灵活性:越来越多的应用场景需要定制的处理器/加速器,因此 NOC 技术需要更大的可编程性,以适应不同类型的处理器和通信需求。16 能耗和功耗优化:NOC 技术需要在提供高性能的同时,优化能源效率,减少功耗。异构系统支持:多种类型的处理器和加速器的异构系统正在普及。NOC技术需要支持不同类型的处理器之间的高效通信和协同工作。安全性和可靠性:随着互联网的普及,芯片的安全性和可靠性变得尤为重要。NOC技术需要提供安全的通信和数据传输机制,以保护敏感信息。虚拟化和云计算:NOC 技术需要支持虚拟化和资源共享,以便
75、多个应用程序在同一片上系统上并行运行。机器学习和自适应性:机器学习技术可以应用于 NOC,以优化通信路由、动态调整带宽和预测通信需求,从而提供更高效的通信和资源管理。总之,NOC 技术的发展趋势将主要关注高度异构集成、高带宽低延迟、灵活性、能源效率、安全性和适应性。随着新的应用场景的出现,NOC 技术将按照上述发展趋势持续演进,以满足 SoC不断提升的通信、集成和异构融合需求。(2)基于)基于 Chiplet 的的 SIP 封装封装技术技术发展趋势发展趋势 在工艺进步日益走向物理极限的今天,多种异构芯粒的封装逐渐成为芯片规模持续提升的关键技术。基于 Chiplet的 SIP 封装技术主要的发展
76、趋势有:异构融合:Chiplet技术为异构融合提供了可能性,其中不同类型的芯粒可以集成在同一芯片中,以实现更高的效率和性能。模块化设计和快速迭代:Chiplet技术允许不同芯粒独立设计和迭代。这使得芯片设计变得更加模块化,可以更快地开发和更新单个模块。多样化和定制化:Chiplet技术使得不同功能的芯粒可以由不同的制造商生产,从而实现定制化和多样化。这有助于满足不同应用领域和市场的需求。高性能和能效:Chiplet技术使得不同芯粒可以根据其特定要求进行优化。如,一个处理器块可以专门针对高性能,而一个存储块可以专注于能源效率。集成性能提升:通过将不同功能的芯粒组合在一起,芯片可以实现更高的整体性
77、能。例如,一个芯片可以将高性能处理器芯粒与专门的加速器芯粒相结合,以提高特定工作负载的性能。低成本制造:Chiplet技术允许将不同芯粒制造在不同的制造工艺上,从而降低制造成本。例如,高性能处理器块可以使用先进的制造工艺,而辅助模块可以使用更成熟的工艺。应用领域扩展:Chiplet技术不仅可以用于传统的计算领域,还可以应用于物联网、人工智能、高性能计算等各种领域,以满足不同应用的需求。综合来看,Chiplet 技术的发展趋势包括模块化设计、高性能、能效、低成本制造、标准化和应用领域扩展。这些趋势均有利于推动芯片设计和制造的变革,走向异构融合,为不同应用领域带来更高效、灵活和创新的解决方案。(3
78、)晶圆级芯片技术的发展趋势)晶圆级芯片技术的发展趋势 晶圆级芯片技术能够在晶圆级别上实现多种异构计算核心的融合,晶圆级芯片技术发展的主要趋势有:更大规模的集成:晶圆级融合计算架构的发展带来更大规模的集成电路,将更多的计算核心、内存、和互连集成到单个芯片或晶圆上。优化的通信架构:随着集成度的增加,未来的发展可能会着重优化晶圆级芯片内部和芯片间的通信架构,以确保高效的数据交换和协作。17 能效和散热:随着集成度的增加,未来的发展可能会关注如何在更大规模的晶圆级芯片上实现高性能计算的同时保持合理的能效和温度控制。总的而言,随着芯片系统的规模增大,不断增加的计算单元数量,使得内部互联成为性能提升的主要
79、瓶颈。为了适应大规模的计算需求,晶圆级芯片技术发展的重点放在了系统的晶圆内互联上,实现更高效的晶圆级异构计算。这将使得针对不同应用场景的优化更加容易,并提供更广泛的计算选择。3.1.2 设备级融合计算设备级融合计算架构架构 异构计算架构的融合,可以是芯片级的,也可以是设备级的。在采用现有的、非异构融合芯片的情况下,可以通过设备级多芯片融合计算,有效地获取高性能计算能力。芯片内融合的核心技术是片内总线,类似的,设备级融合的核心技术是芯片间互联的高速总线,主流的芯片互联总线有 PCIe、CXL和 NVLink 等。(一)设备级计算架构技术分析(一)设备级计算架构技术分析(1)PCIe 总线总线 P
80、CIe(PCI-express,高速 PCI 总线)在 PCI(Peripheral Component Interconnect,外设部件互联总线)基础上把传输机制从并行改成了串行,通过使用差分信号传输,干扰可以很快被发现和纠正,从而传输频率获得大幅提升。串行 PCIe 还得到了另外的好处,例如布线简单,线路可以加长,甚至变成线缆连出机箱,多个 Lane 还可以整合成为更高带宽的线路等。图 3-6 PCIe示意拓扑图 不考虑 Switch 的影响,PCIe 根节点跟 PCIe 终端节点(End Point)是直接相连的。这样,跟 PCIe 相关的数据通路有如下三个:处理器 CPU(通过 PC
81、Ie RC)访问 PCIe EP;PCIe EP(通过 PCIe RC)访问 Memory;PCIe EP(PCIe P2P 机制,通过 PCIe RC 或 PCIe Switch)访问另一个 PCIe EP。PCIe 从 1.0 发展到了 5.0(PCIe 6.0 标准已经发布,目前没有看到实际的 PCIe 6.0 产品),每一代的带宽大致上翻倍。到 PCIe 5.0,通过 x16 组总线,可以支持双向共约128GB/s的数据带宽,可以支持高达 400Gb的网络带宽。(2)CXL 总线总线 18 图 3-7 CXL总线的典型应用场景 CXL 是 Intel 发布的一种支持缓存一致性协议的芯片
82、间互联总线,CXL 基于 PCIe(PCIe 5.0或以上)的基础架构实现。通过 CXL,可以在 CPU和加速器之间建立一致性的内存池,通过硬件机制在加速器和处理器之间高效的共享内存,提升性能并且降低延迟,降低软件堆栈复杂性并降低系统总体成本。如图 3-7所示,CXL标准定义了 3 种协议:CXL.io 协议。协议本质上是 PCIe 协议的扩展,用于设备发现、配置、寄存器访问以及终端等。它为 I/O 设备提供了非一致性数据的 Load/Store 接口。CXL.cache协议。协议定义了设备对主机的访问,允许设备使用请求/响应机制以极低的延迟访问主机内存的数据。CXL.mem协议。协议提供主机
83、处理器使用 Load/Store 指令访问设备内存,主机 CPU充当主设备,而设备充当从设备。并且能够支持易失性和非易失性存储。CXL.io 协议用于初始化和链接,因此所有 CXL 设备都必须支持该协议。其他两种协议的不同组合使得可以定义三种 CXL设备类型:类型 1:只包含 CXL.io 和 CXL.cache协议。用于只具有一致性 Cache的设备,设备跟主机一起共享主机内存。类型 2:包含全部三类协议 CXL.io、CXL.cache 和 CXL.mem。用于设备也具有独立Memory的场景,这样设备可以一致性的访问主机内存,主机也可以一致性的访问设备内存。类型 3:只包含 CXL.io
84、 和 CXL.mem 协议。这样,主机可以一致性的访问设备内存,设备相当于一个内存扩展器。(3)NVLink 总线总线 NVLink 是 NVIDIA 针对 GPU 加速计算而开发的全新高速互联技术,它大大提升了 GPU 之间的通信性能,也大大提升了 GPU 访问主机内存的性能。NVLink 是一种片间数据一致性总线协议,基于 NVLink 总线,除了访问本地内存,GPU还可以访问其他 GPU的内存,甚至主机 CPU的主机内存。19 图 3-8 NVLink 1.0接口的分层协议 如图 3-8 所示,NVLink 控制器由 3 层组成,即物理层(PL)、数据链路层(DL)以及传输层(TL)。N
85、VLink 1.0 每条链路支持双向各 8条分道,共 4 条链路,双向共支持 160GB/s的带宽。图 3-9 不同版本的 NVLink 总线协议 如图 3-9所示,NVLink 2.0相比 1.0,每条链路的带宽从 20Gbps增加到 25Gbps,并且支持的链路数量从 4 条增加到 6 条,因此 NVLink 2.0可以提供总计 300GB/s的双向带宽。如图 3-9,NVLink 3.0 支持总计 600GB/s 的双向带宽,NVLink 4.0 支持总计 900GB/s 的双向带宽。NVLink 2.0 开始支持数据一致性,允许从 CPU 直接访问 GPU 内存,允许读取来自GPU 内
86、存的数据缓存到 CPU 的 Cache 中。通过 NVLink,可以在 CPU 和 GPU 之间建立一致性的硬件缓存访问,进一步的提升 CPU和 GPU之间的数据交互性能。20 图 3-10 GPU异构服务器:CPU+GPU设备级融合 随着 AI 特别是大模型的发展,GPU 异构服务器已经取代传统 CPU 同构服务器,成为最炙手可热的服务器类型。通过 QPI、PCIe、NVLink 等芯片间总线,在设备级实现了CPU+GPU的基本融合,实现了设备级的异构计算。(二)设(二)设备级融备级融合计算架构技术探索合计算架构技术探索 多种异构融合,必然是更加庞大的计算系统。通过功能强大的芯片间互联总线,
87、实现设备级的异构融合计算系统,是一个切实可行的方式。芯片间高速互联总线,是实现设备级异构融合的关键。也因此,从异构不断融合的发展视角,必然对芯片间互联总线提出一些更高的要求:更快计算速度。在单芯片性能增加有限的情况下,需要异构资源协同效率的快速提升,这势必对芯片间互联的总线带宽提出了更高的要求。更高的带宽。除了提升单通道带宽能力之外,更需要通过更多的物理通道(Lane)数量来快速实现带宽提升。缓存一致性性能。把多个芯片或设备链接成更大的单个系统,总线缓存一致性能力变得越来越必不可少。缓存一致性性能是设备级融合计算综合性能的关键因素。系统的更高扩展性。常见的 GPU服务器,最多支持 8张 GPU
88、卡。需要通过总线协议的支持,能够更好的支持 16、32 个加速芯片,甚至更大数量的加速芯片的设备级集成。对称的芯片间总线协议。CXL是非对称主从架构的片间总线协议,如 CXL目前的案例基本上是“以 CPU 为中心”扩展各种加速卡的方式。从本质上来说,这属于多异构,而不是异构融合。如果要想在设备级实现完全异构融合的对等架构,势必需要采用对称的芯片间总线协议。更高效率的总线交换机。芯片的总线带宽和通道数有限,要想在设备级实现更大数量、更多规模的多芯片互联,势必需要通过总线交换机。21 GPUDPUDPUDSANIC网络GPUCPUNVMe SSDNVMe SSD 图 3-11 设备级异构融合案例:
89、以 DPU为中心的计算架构 除 CPU、GPU 之外,DPU 是数据中心的第三颗主力芯片。DPU 主要是虚拟化、网络、存储、安全四类基础设施工作任务的集成加速平台。如图 3-11 所示,以 DPU 为中心,融合 CPU、GPU、其他各类 DSA 的计算能力,构建设备级异构融合计算加速,可以实现相比传统 CPU同构服务器、GPU异构服务器更高的性能和相对更低的算力成本。3.2 软件层面融合技术探索软件层面融合技术探索 软件支持在异构融合计算中扮演着至关重要的角色。通过统一的软件设计,我们不仅可以提升异构融合计算的适用范围和性能,还能为后续的硬件开发提供指导。在这一部分,我们首先对异构软件优化的相
90、关技术进行了深入分析,然后重点讨论了两大关键支持技术领域,即操作系统和编程框架。我们不仅剖析了当前国内外最先进的技术,还明确了未来发展的重要目标。3.2.1 面向异构软面向异构软件优化技术分析件优化技术分析 在异构融合计算的背景下,需要进行异构软件优化技术的分析,这包括针对异构计算环境中的软件应用所设计的性能优化方法和策略。异构计算环境通常综合了不同类型的处理单元,例如 CPU、GPU、FPGA 等。这些处理单元在不同的任务和工作负载下具有不同的性能特点和能力。为了确保在不同类型的计算资源上执行的软件能够以一致的方式运行,避免潜在的错误和运行不一致性问题,需要采用特定的优化技术和方法。以下是针
91、对异构融合计算场景一些面向异构软件优化的技术和方法:(一)跨平台兼容性(一)跨平台兼容性 在异构融合计算环境中,通常会涉及到多种类型的硬件,如 CPU、GPU、FPGA 等。每种硬件都有其独有的架构和性能特征。为了充分利用这些硬件资源并确保一致性,软件不仅需要能够在不同的平台上运行,而且应该尽可能的利用平台硬件资源。针对异构计算设备,统一的操作系统级开发工具链需要支持针对不同设备类型的编译、调试、链接和开发库等功能,以简化异构设备的编程和开发流程,构建一致的开发环境,保证跨平台的兼容性,从而提升开发效率和软件质量。在编译器方面,需要支持针对不同设备类型的编译,并为各种硬件架构生成高效的代码。例
92、如针对 GPU 的编译器需要支持 CUDA 或 OpenCL 等编程语言,并能够生成针对不同 GPU 架构的优化代码。此外,编译器还需要提供丰富的优化选项,以优化生成的代码并提高程序的性能。例如,编译器可以使用向量化指令来加速程序的执行。22 在调试器方面,针对异构计算设备的调试器需要支持对不同设备类型的调试,以帮助开发人员在异构设备上查找和修复错误。例如,对于 GPU,调试器需要能够准确地调试GPU 代码,同时能追踪和分析 GPU 的内存访问和计算操作。调试器还应该提供全面的调试功能,例如断点、单步执行和变量监视等,帮助开发者精准地定位并解决问题。在开发库方面,简化编程的工具和库对异构计算设
93、备至关重要。针对异构计算设备的开发库需要提供针对不同设备类型的抽象接口和函数库,以简化异构设备的编程。例如,CUDA 和 OpenCL 提供了针对 GPU 的函数库和 API,帮助开发人员轻松地编写高效的GPU 程序。此外,开发库还应提供丰富的示例代码和详尽的文档,以便开发人员快速上手使用。跨平台的编程语言和工具 以下是主流的跨平台编程语言和工具:表 1:主流的跨平台编程语言和工具 C/C+一种广泛用于跨平台开发的编程语言,具有高度的移植性,可以在多种硬件上编写和运行代码。Python 一种高级编程语言,具有丰富的库和工具生态系统,可以通过不同的库和框架实现跨平台的计算。Java 一种跨平台的
94、编程语言,通过 Java 虚拟机(JVM)可以在不同操作系统上运行。OpenCL 一种开放计算语言,也代表了一种异构计算标准,允许在不同类型的计算设备上进行并行编程,包括 CPU、GPU和 FPGA。选择合适的编程语言取决于具体的应用需求和硬件平台。关键是要确保所选编程语言在目标硬件上具有良好的支持和性能。标准化 API和库支持 以下是常见的标准化 API和库:表 2:常见的标准化 API和库 OpenMP 一种支持共享内存并行编程的 API,可以在不同操作系统和硬件上使用,用于多线程并行计算。CUDA NVIDIA 推出的用于 GPU 编程的平台,提供了一套标准化的 API 和库,用于在 N
95、VIDIA GPU 上进行并行计算。OpenCL 一种跨平台的异构计算标准,提供了一致的 API,允许在不同硬件上执行并行计算任务。标准化的 API 和库可以确保在多种硬件之间实现功能一致性,并能够简化软件的开发和维护过程。此外,标准化的 API 和库通常由硬件制造商支持,因此可以提供最佳的性能和兼容性。(二)算力一致性(二)算力一致性 算力是指计算设备在单位时间内所能完成的计算量。鉴于异构计算设备具有不同的硬件特性和架构,其在计算能力上也存在差异。不同的计算单元具有不同的计算方式和指令集,因此需要采用不同的计算方法来描述它们的算力。CPU 的算力通常以浮点运算能力(FLOPS)为单位进行计算
96、。FLOPS 表示计算设备在单位时间内能够完成的浮点运算次数,包括加法、减法、乘法和除法等运算。常见的 CPU算力计算方法包括基于 CPU架构和核心数的峰值 FLOPS和实际 FLOPS等。GPU 的算力通常以浮点运算能力(FLOPS)和整型运算能力(IOPS)为单位进行计算。与 CPU 不同,GPU 的并行计算能力非常强,因此其算力计算方法还需考虑并行计算能力。常见的 GPU算力计算方法包括基于 GPU架构和 CUDA核心数的峰值 FLOPS 和 IOPS以及实际 FLOPS和 IOPS等。FPGA 的算力计算方法比较复杂,需要考虑 FPGA 的架构、时钟频率、并行度等因素。23 常见的 F
97、PGA 算力计算方法包括基于 FPGA 逻辑单元数量、时钟频率和并行度的峰值计算性能以及实际计算性能等。不同计算设备间的算力等价转换方法,常见的有两种:基于计算密度的等价转换 计算密度是指设备在单位面积或单位体积内所能完成的计算量。对于同一类型的异构设备,可以通过计算其计算单元数量、时钟频率、并行度等参数,来计算其计算密度并进行比较。对于不同类型的异构设备,可以将其计算密度转换为相同的单位进行比较。基于通用计算能力(GPGPU)指标的等价转换 通用计算能力(GPGPU)指标是一种通用的 GPU 算力评估方法,它将 GPU 的算力刻画为一个通用的计算指标,以便与其他类型的计算设备进行比较。常用的
98、 GPGPU 指标包括单精度浮点运算能力(SPFP)和双精度浮点运算能力(DPFP)等。(三)运行一致性(三)运行一致性 通过操作系统、虚拟化和容器等技术,我们可以在软件层面对底层异构算力设备(如CPU、GPU 等)进行抽象和封装。这使得上层应用程序可以方便地访问和管理硬件,同时隐藏底层不同硬件设备的差异性,提供统一的计算运行时环境。可变粒度资源技术是实现运行一致性的关键技术。由于计算环境中的资源具有非常高的动态性和不确定性,这要求对应程序能够自动适应不同的计算负载和需求。可变粒度资源技术可以将计算资源分解为更小的粒度,并能够根据实际需求进行动态调整。这种技术可以让计算资源更加灵活地适应不同的
99、应用程序需求,从而更好地利用资源。在云计算环境中,通常会将计算资源分解为裸金属、虚拟机、容器、函数等更小的粒度,并动态调整资源分配和使用。通过可变粒度资源技术可以更好地保证服务的可靠性。(四)管理一致性(四)管理一致性 异构计算设备因其多样的硬件架构和接口而带来了管理、维护和安全上的挑战。为了更有效地应对这些挑战,必须提供一种综合的方法,包括统一的监控管理、运维管理、安全管理和迁移工具,以确保管理操作的一致性。监控管理方面,对于异构计算设备的监控,需要提供统一的监控工具,以监测异构计算设备的性能、温度、功耗等关键指标。通过对异构计算设备的监控,可以及时发现设备的异常情况,并采取相应的措施进行处
100、理。例如,对于 CPU 和 GPU 等设备,可以采用性能分析工具,对设备的性能进行监测和分析;对于 FPGA 等可编程逻辑器件,可以采用逻辑分析仪等工具进行监测和分析。运维管理方面,需要提供统一的运维工具,以管理和维护异构计算设备的软硬件环境。例如,通过提供统一的操作界面,可以方便地进行软件的安装、配置和更新,同时也可以对硬件进行管理和维护。对于异构计算设备的软件管理,可以采用容器化技术,将不同种类的软件打包成容器,方便快速部署和管理。安全管理方面,需要提供统一的安全工具,以确保异构计算设备的安全性。异构计算设备的安全问题主要涉及数据安全、身份认证、漏洞管理等方面。例如,可以采用统一的身份认证
101、机制,对设备的访问进行认证和授权;同时可以通过安全补丁管理工具,及时对设备进行漏洞管理和修复。迁移工具方面,需要提供统一的迁移方案,以便在不同异构计算设备之间进行快速迁移。异构计算设备之间的迁移涉及到不同的处理器和加速器之间的转换,需要提供一套标准的迁移方案,以确保不同设备之间的兼容性和互操作性。例如,可以采用虚拟化技术,将不同种类的处理器和加速器虚拟化为同一种处理器和加速器,以实现快速的迁移。24 3.2.2 面向异构融合面向异构融合的操作系统的操作系统 人工智能、大数据、物联网等技术迅猛发展,用户的计算场景更加多元,计算类型更加复杂多样,多 CPU、多 XPU 共存也已然成为长期趋势,这将
102、会显著增加操作系统对多元异构硬件管理和使用的复杂性。基于以上问题,操作系统需要在多方面进行优化。首先,操作系统需要能够对异构设备进行抽象,将不同的异构设备抽象成标准的 Linux 设备供程序使用;其次,操作系统需要提供异构设备的统一编程模型,以此简化编程方式,提升应用程序性能;最后,操作系统需要对异构设备的调度使用进行优化,充分发挥异构设备的性能优势。(一)异构设备抽(一)异构设备抽象象 操作系统提供了标准的设备驱动程序接口,包括字符设备、块设备、网络设备等,异构设备可以通过编写标准的设备驱动程序与操作系统进行交互,从而实现异构设备的统一管理,使得应用程序可以通过标准的设备节点访问异构设备。异
103、构设备的管理流程包括:1)硬件检测,系统启动时检测接入的异构设备,如GPU/DPU/FPGA 等,系统创建对应的 device。2)驱动程序装载,操作系统检测到异构设备时,会尝试加载对应的驱动程序进行异构设备的初始化、资源的分配、中断的注册等,最终会通过字符设备、块设备、网络设备等方式暴露给用户态。3)访问异构设备,用户态程序可以通过相应的设备节点访问异构设备,比如通过标准的 open/read/write 系统调用对异构设备进行操作,最终完成与异构设备的交互。(二)异构设备统一编程模型(二)异构设备统一编程模型 为了充分利用多种硬件架构的性能优势,开发人员需要为不同的硬件平台编写不同的代码,
104、这对开发人员来说是一个挑战,同时也限制了应用程序的可移植性,所以需要提供一个统一的编程模型和一套工具,使开发人员可以使用一种语言和一组库来开发可以在不同硬件上运行的应用程序,达到简化开发过程和提高应用程序可移植性的目的。实现统一编程模型的关键是提供一种跨多种硬件架构的高性能并行计算编程语言。这种语言能够支持统一编写可以在各种硬件架构上执行的代码,还应提供一组性能库,覆盖高效的数学、数据分析和图形处理等常见的高性能计算场景,从而能够针对特定的硬件架构进行代码优化,帮助开发人员更快的开发高性能应用程序。除了编程语言和性能库,统一编程模型还应提供一组性能工具,包括性能分析工具和优化器,帮助开发人员找
105、到应用程序的性能瓶颈并提供优化建议,从而提升应用程序的性能和可靠性。(三)算力抽象与调度(三)算力抽象与调度 随着云计算技术的发展,算力抽象和供给方法从传统的物理机方式跨越式发展到包含虚拟机、容器、安全容器、裸金属服务器等更多粒度基于云计算的算力抽象方法,以满足用户多样化的资源需求和业务诉求。通过虚拟机承载稳态业务,搭配更加灵活敏捷的容器和安全容器承载敏态业务,并基于云物理机提供更高性能的计算能力,成为越来越多客户的首选,与此同时对云操作系统提出了可变粒度资源统一池化、统一管理及形态互转的要求。可变粒度的资源池化需要解决多种粒度的算力抽象在计算、存储、网络等资源的割裂问题,构建统一的底层资源池
106、,进行统一的池化管理。在此基础上,通过云操作系统提供的统一门户,为租户提供所需的虚拟机、容器、云物理机等资源,资源之间具备网络互联、数据互通的能力。更进一步的,实现资源之间的形态互转,以满足用户希望的随业务变化而改变业务承载实体的灵活需求可变粒度的资源管理能够提升资源调度的灵活性、业务敏捷性,为云上业务的灵活弹性提供平台级支撑。面向算力抽象与调度的操作系统优化 25 操作系统内核调度器优化:调度器是操作系统中非常重要的组件,它负责协调和管理各个进程之间的执行。由于目前调度策略不能满足所有场景需求,通过修改调度器代码实现新调度器需要重新编译内核且难度较大,因此,如何能够在系统运行时动态升级调度器
107、成为研究热点。其中,调度器热升级一种实现方式可以通过将调度器子系统从内核中提取出来,然后针对不同业务对代码进行定制修改,最终以模块形式加载到内核并动态切换调度器。这种做法可以有效解决升级内核成本较高、调度优化无法快速规模化部署的问题。面向内存冷热数据管理的调度优化:为了提升内存的容量和性能,内存技术正在快速发展,比如 HBM内存、非易失内存、CXL内存,但这却给操作系统如何管理这些内存带来了新的挑战。如果内存管理模块不考虑各内存介质的访问延迟,将所有内存介质统一按照 DRAM进行管理会导致内存访问性能降低。解决这个问题的实现方式可以在内存管理模块中将不同内存介质划分到不同的 NUMA node
108、,然后将同类型的 NUMA node划分到同一个分层中,以此实现内存的分层管理。后续基于分层管理可以实现内存数据的冷热迁移,让热内存保持在快速内存中,冷内存保持在慢速内存中,从而高效的利用不同介质的内存资源。面向容器混部场景的调度优化:在容器场景,如何最大限度的提高资源利用率,在提升容器部署密度的同时又不影响业务运行是重点研究的方向。目前资源隔离技术主要是通过 cgroup 实现,但在某些场景还需要进行优化,比如混部场景下如何保证实时任务的资源优先访问。为了解决这些问题可以采用多种技术:基于 Group Identity 技术,提升高优先级组的及时抢占能力,确保高优先级任务的性能,适用于在线任
109、务/离线任务混部的场景。基于处理器的硬件资源管理技术,实现 CPU cache 和内存带宽的资源隔离,提升关键业务的性能。memcg 内存回收优化,避免应用自身陷入直接内存回收,适用于对时延敏感的容器业务场景。I/O 资源控制,基于权重比例为每个容器分配磁盘资源,保证重要业务的 I/O 资源访问,同时具有自适应能力,尽可能避免磁盘资源被浪费。高性能 I/O:为了解决传统 I/O 事件处理机制在高负载 I/O 环境下的性能瓶颈问题,新的异步 I/O 机制 io_uring正在快速发展。与传统的 I/O 事件处理机制(如 select、poll、epoll)相比,io_uring 带来以下好处:更
110、高的性能,io_uring 通过使用异步 I/O 操作和多个内核线程来提高 I/O 吞吐量,传统的 I/O 事件处理机制可能会出现 I/O 阻塞,而 io_uring 通过使用 I/O 完成队列来避免I/O 阻塞,从而实现更高的 I/O 吞吐量。更低的 CPU 利用率,io_uring 使用了零拷贝技术,可以避免数据在内核空间和用户空间之间的拷贝,从而减少了 CPU的利用率。更灵活的事件管理,io_uring 支持多种类型的 I/O 事件,包括文件读写、网络 I/O等。开发人员可以使用 io_uring API来管理这些事件,从而实现更灵活的事件管理。高性能网络:实现高性能网络的一种方法是基于
111、 eBPF。eBPF对网络的加速主要体现在可以通过 eBPF绕开 TCP/IP 协议栈,直接将数据发送到目的地。eBPF程序根据 Hook点的不同分为 XDP 程序、TC 程序、套接字程序等:XDP 程序在网络驱动程序刚刚收到数据包的时候触发执行,常用于防火墙和四层负载均衡;TC 程序在网卡队列接收或发送的时候触发执行,运行在内核协议栈中,常用容器之间的网络通信加速;套接字程序在套接字创建、修改、收发数据等变化的时候触发执行,运行在内核协议栈中,常用于过滤、观测26 或重定向套接字网络包。另一种技术是基于 RDMA 的 SMC-R 技术,与传统网络相比,RDMA 可以将 CPU 从网络传输中解
112、放了出来,提升网络的性能,但使用 RDMA需要修改应用,严重限制了 RDMA 的部署范围。SMC-R是基于 RDMA的网络加速技术,以一种对应用透明的形式使用 RDMA。SMC-R协议栈实现在内核层,通过创建 AF_SMC协议簇socket,基于 TCP 透明使用 RDMA,极大提升了用户态程序的兼容程度和网络性能。3.2.3 面向异构融合的编程框架面向异构融合的编程框架 异构融合计算在计算机领域的应用将逐步扩大,随着各种新型硬件的出现和异构计算框架的不断完善,异构计算编程有望成为计算发展的重要趋势。特别地,在 AI 领域、HPC 科学计算领域方面,对于异构和异构融合的需求是极为迫切的。软件的
113、编程框架决定了其适应性,从底层标准到上层接口套件,目前已有多种异构并行编程框架。特定于底层硬件设备的标准和框架允许开发者直接针对特定硬件设备进行编程,包括底层的内存管理、任务调度和性能优化:OpenCL(Open Computing Language)是一种开放的跨平台并行计算编程框架,由 Khronos Group 组织制定和维护。它提供了一个统一的编程模型和接口,方便开发者在各种异构计算设备上进行高性能计算,包括 GPU、FPGA 和其他加速器。SYCL(Single-source C+Heterogeneous Language)基于 OpenCL标准,并提供了一组 C+的扩展,可以让开
114、发者在使用支持 OpenCL的多平台硬件设备是更加便利。通过使用 SYCL,开发者可以在异构计算环境中编写具有高性能的并行程序,将计算任务合理地分布到不同类型的设备上,并利用每个设备的特点和能力来加速计算。全栈异构框架聚焦于开发适用于多平台的编程框架,包含硬件抽象、编程语言、库和工具:OneAPI是由 Intel推出的跨架构编程模型,旨在简化并加速针对不同硬件的编程。它提供了统一的编程接口、工具集和库,可用于开发异构计算应用及优化,支持 CPU、GPU、FPGA等设备。OneAPI基于标准的数据并行性模型,并使用 SYCL编程模型来实现跨平台的异构编程。基于 C+编写的源代码,可以通过 One
115、API编译器和运行时系统转换为适用于不同硬件的代码。ROCm是由 AMD 推出的一个开源平台,用于支持多平台异构编程。它提供了一系列工具、库和编程模型,允许开发者使用常见的编程语言(如 C+和 Python)进行 GPU编程,支持多种操作系统(如 Linux 和 Windows)。ROCm还与 HSA(Heterogeneous System Architecture)紧密集成,以提供更高效的内存共享和数据传输。在未来,异构融合编程框架的发展在统一性、易用性和广泛性上还有大幅发展空间,也就是:(1)统一编程模型,以简化异构编程;(2)向更高级别的抽象发展,以降低并行编程的复杂性;(3)逐步扩大
116、支持的硬件范围等。(一)面向(一)面向 AI 领域的编程框架领域的编程框架 近年来,随着人工智能技术的飞速发展,各种深度学习框架如雨后春笋般涌现出来。目前主流的深度学习框架包括 Pytorch、Tensorflow以及国产的 PaddlePaddle、MindSpore等。除了深度学习框架之外,还有用于部署的推理 Server 框架,例如 TFServing、Torch Server、Triton,以及国产的 Paddle Serving 等,这些框架可以帮助用户快速部署训练好的模型,以提供高效的推理服务。虽然上述框架对主流的模型类型都有支持,但在硬件支持方面,仅限于 CPU、GPU和少数 A
117、I 芯片,而对其它 AI芯片特别是国产芯片都不支持,这使得使用这些不被支持的异构芯片面临极大挑战。深度学习框架和推理 Server 框架提供通用的人工智能编程支持,并在人工智能技术的应用中扮演着至关重要的角色。27 除了框架本身外,编译等技术对人工智能编程的效率等方面具有影响,其中一个趋势便是机器学习模型的优化技术。对于同构编程框架,一般的优化技术包括编译加速、循环优化和指令优化、内存优化、低比特量化、模型压缩、多线程优化等。这些对异构编程的支持、对于新研发的 AI等芯片使用和推广极具参考价值。总体来看,面向 AI领域的异构编程框架目前在如下两方面可以进一步优化:第一是对于底层异构算力的支持。
118、上述编程框架除了支持典型的 GPU 和少数异构处理器外,对别的异构处理器并不友好。开发对新型异构算力的支持,对面向 AI领域编程框架本身的发展推广和新兴异构处理器的推广都具有积极的作用。在这方面,已有的一些解决方案或者建议包括:通过 AI编译器的方式,可以将前端模型转换为中间表示(IR),然后使用相应异构芯片的代码生成器生成代码。这种方法主要用于推理任务,并且通常需要编写适配新异构芯片的代码生成器。TVM和 MLIR 是两个具有代表性的 AI编译器。通过修改现有框架或使用插件来支持异构芯片。这种方式可以同时支持训练和推理,并且比较容易实现。例如,TensorFlow 提供了 XLA 和 Ten
119、sorRT 插件来支持 GPU 和 TPU加速,而 PyTorch也提供类似的插件。第二,面向 AI 领域的编程框架较少考虑特定的应用场景。例如 Pytorch、TensorFlow都是通用的编程框架。国产的 PaddlePaddle 等已经考虑了对包含高维稀疏离散异构数据的处理。在企业的实际应用中,可能还存在别的场景。针对这些场景的扩展和优化等可以进一步加速 AI领域编程框架的发展和应用。从编程开发的角度来看,未来优秀的 AI软件栈应该能够尽可能高效地利用各类芯片。除了注重深度学习优化、强化学习支持、灵活和轻量部署,未来的异构编程框架可能会向着自适应计算发展,即在运行时根据输入数据的特征和任
120、务需求,动态地选择最佳的计算资源和算法配置。(二)面向(二)面向 HPC 领域的编程框架领域的编程框架 HPC(High Performance Computing)即高性能计算,是使用有高速计算能力的并行处理器集群,来处理大规模计算、求解复杂问题的技术,对并行和分布式计算、大数据处理和高速 IO、一些特定问题的优化等方面有强依赖。HPC 在科研和工程中的许多方面都有广泛应用,例如基因测序、天气预报、分子动力、工程仿真、天文数据处理、粒子运动求解等。随着高性能计算集群进入 E 级运算水平,传统方式难以实现性能突破,异构融合的方式逐渐成为 HPC 实现大规模扩展、高效运行的主流方式之一,势必对异
121、构并行编程框架需求更高。那么更加灵活和可编程的加速器以及更加智能的系统优化,可以进一步提高 HPC 应用的性能和效率,满足更复杂、高要求的科学计算和工程计算任务。随着硬件体系结构的变化和对异构计算的需求提高,业界采用的面向 HPC 的领域编程也在发生变化,从而在各个层次面向异构实现。典型的转变主要体现在两个方面,第一是HPC编程(语言)框架的转变,例如:Fortran 到 C+的转变:Fortran 是一种传统的科学计算语言,而随着计算环境的变化和异构设计需求的出现,很多原先使用 Fortran 编写的程序转为使用 C+,以便更好地适应新的硬件和并行计算环境。多 CPU核计算框架编程到异构计算
122、框架编程:早期的并行计算主要采用基于共享内存的多 CPU核计算框架,例如使用 OpenMP 进行并行计算。随着异构计算设备的兴起,开发者开始将程序改造为使用 OpenCL 进行异构计算,充分利用 GPU、FPGA 等加速设备的并行计算能力。28 CUDA 到 OpenACC 的转变:CUDA 是 NVIDIA 提供的专门针对其自家 GPU 的编程框架,而 OpenACC 是一种针对异构计算的并行编程方式。为了使原先使用 CUDA 编写的程序可以在其他硬件(如 CPU)上运行,开发者可以将 CUDA 程序改造为使用 OpenACC 编写,从而实现在异构设备上运行。第二是单一 HPC 编程向异构
123、HPC 编程的转变。这一点主要体现在科学计算、工程计算等复杂计算领域中,这背后往往是对指数级计算量需求的不断增加。随着网格稠密程度增加、模拟尺度增加,计算量呈现出了指数型增长,促使多学科模拟等正在尝试和建立异构 HPC 计算框架。其中一个典型的领域是地球系统多圈层模拟(如 E3SM 应用)。该模拟面对的是复杂的,涉及大气、陆地等多模块的大规模数据和复杂物理过程。在版本迭代发展中,E3SM 已经有越来越多的模块支持使用 GPU 加速计算,并且改进了计算步骤,使其成为 GPU 友好的并行化程序,包括在模型的时间步进或空间网格的更新上。通过 GPU 加速,E3SM显著提高了模拟的计算效率和加速模拟结
124、果的生成。随着技术的不断进步,HPC 领域将不仅仅局限于 GPU、FPGA,未来的异构编程框架将趋向于支持更多不同类型的加速器,因此未来也将注重高级别的抽象和编程模型。此外,在 HPC 系统中,资源管理是一个重要的挑战,为了提高异构计算系统的性能,未来的框架可能会更加智能化,具备自动优化和并行化的能力。这将会推动更大规模的数据处理和提升分布式计算量级,从而进一步提升 HPC 的计算能力,加快科学研究和工程应用的进展。此外,未来 HPC 和 AI 可能结合更加紧密,HPC 可以提供物理约束,AI 可以发现潜在的科学规律,从而实现双向促进。3.3 系统层面融合技术探索系统层面融合技术探索 系统层面
125、的融合计算技术探索,主要讨论大规模数据中心级的融合技术,以及新型计算模式的融合。3.3.1 数据中心融合数据中心融合(一)数据中心融合计算架构技术分析(一)数据中心融合计算架构技术分析 随着新型应用的加速演变,数据中心正转向从单一规模扩展到复杂架构融合。转变之一是服务器的架构逐渐从以 CPU 为中心转向异构融合计算,例如引入 GPU、TPU、ASIC或 FPGA 等异构计算加速器。转变之二是数据中心的架构以系统设计为中心,按照业务需求来设计。实际上,我们可以把 Google 搜索、Gmail、Google Cloud 或 TensorFlow 等看成是一个逻辑上的单一的“大应用”,是数据中心级
126、别的业务系统;因此硬件重构需按照“数据中心即计算机”的理念来实践。以系统设计为中心的原则,需要我们重新思考如何构建和部署数据中心资源。它意味着要超越硬件和软件的传统界限,考虑整个数据中心作为一个协同工作的系统。例如,对于特定的 AI工作负载,我们不仅要考虑芯片的设计,还要考虑数据流、存储、网络和软件栈如何相互作用以提高效率。按照业务需求来设计包括如下部分:1)针对性优化:传统的芯片设计通常是通用的,不考虑其在特定应用场景中的性能。而针对特定业务需求的系统设计,如专为 AI 计算设计的 TPU,可以为特定工作负载提供更高的效率;2)提高资源利用率:传统的通用设计导致资源在某些应用场景中被浪费。而
127、按需设计可以确保资源在特定的工作负载下达到最大的利用率;3)异构融合(软硬件系统级融合):不改变系统层次结构和组件交互关系,但打破软硬件界限,通过系统级的协同设计,实现更高效、更灵活和更强大的系统功能。Google 的 TPU 是这一理念的经典例证。以矩阵运算为代表的深度学习工作负载,在29 Google 数据中心占比快速增长,已经成为主要业务需求。为此,Google TPU 从业务需求出发,专门针对深度学习的特征进行了系统设计。在芯片层面,通过定制高密度的 8 比特MAC 单元,TPU 单芯片可以提供每秒 92 万亿次操作的峰值计算能力,从而大幅提升矩阵运算吞吐。同时,TPU 还内置了大容量
128、的片上缓存,提供数据局部性,减少外部存储访问,以满足深度学习应用的延迟需求。如下图,主要的计算部分是右上角的黄色矩阵乘法单元(Matrix Multiply Unit);其输入为蓝色的权重 FIFO(Weight FIFO)和蓝色的统一缓冲器(Unified Buffer),输出是蓝色的累加器(Accumulators);黄色的激活(Activation)单元对累加器(Accumulators)执行非线性函数,这些函数传输至缓冲器(Unified Buffer)。图 3-12:TPU 块状图(Block Diagram)1 TPU 的硬件设计都紧紧围绕数据中心的业务需求进行了系统设计,在矩阵乘
129、法运算单元方面实现了高密度低位宽的设计,大幅提升了吞吐量;在存储系统方面采用了大容量片上缓存,满足了低延迟的需求。这种从业务角度进行系统级硬件融合的设计思路,使 TPU 相对通用型 CPU 和 GPU 获得了 10-30 倍的性能提升。在过去 56 年间,谷歌 TPU 取得了不凡的成绩:TPU 在谷歌的数据中心得到了大规模部署使用,从 2017 年的第一代 TPU 到现在的第四代 TPU都被广泛应用于谷歌数据中心。TPU 成为谷歌 AI 应用平台的重要组成部分,TPU 被集成到谷歌的 AI 平台 Tensor Flow和 AI服务平台中,成为运行谷歌 AI应用的关键硬件。总之,从系统层面看,T
130、PU 不仅单点提升了计算性能,还通过软硬件协同设计提升了数据中心整体的计算效率,降低了系统能耗;充分体现了从业务需求出发的系统设计思想。此外,AWS EC2 的动态异构数据中心和 Azure 的可扩展异构数据中心都采纳了“以系统设计为中心、按照业务需求来设计”的异构融合理念。这种数据中心融合的理念,不仅推动了数据中心从规模扩展到架构融合的转变,还为更好地满足业务需求打下了基础。(二)数据中心融合计算架构技术探索(二)数据中心融合计算架构技术探索 异构计算的快速发展,不仅反映了算力资源的多样性,还驱动着处理器技术的不断演进和创新。异构计算的融合趋势,降低了超算中心、数据中心和智算中心间的算力服务
131、边界,各类型算力中心利用相似的异构引擎和分布式计算架构,实现更灵活地跨越应用算力服务。谈到数据中心融合,离不开十多年来一直在发展的一种趋势,就是融合架构。融合架构的本质在于硬件重构与软件定义。其核心技术包括物理层面的“解耦、集中、智能调 1 ISCA2017,In-Datacenter Performance Analysis of a Tensor Processing Unit 30 度”,实现计算、存储和网络资源的分类和集中化。在逻辑层面,支持资源池化和应用驱动的资源动态分配。融合架构可以按照软硬件协同的方式,分三个阶段逐步发展,如下图:图 3-13 数据中心级融合计算架构演进示意图2
132、融合架构 1.0:实现了散热、电源、管理资源的集中化和模块化;运用软件定义技术进行计算和存储等资源的池化和集中管理,其典型代表为整机柜服务器。融合架构 1.0 相比以往大幅提高了计算密度。这一阶段被视为“服务器即计算机”(Server as a Computer)。融合架构 2.0:机柜内部使用高速互连技术如 PCIe,对异构计算加速设备、存储和网络等 I/O 设备进行解耦、池化,提高资源利用率,来满足业务需求;其典型代表为 SMC(Smart Modular Center,模块化数据中心架构)。一般意义上的软件定义网络,是在三层网络上通过 Overlay 方式实现二层交换;而在 SMC 中,
133、虚拟交换机的功能可以通过分布式交换网络的网卡硬件实现,按需构建拓扑、划分 vLan、定义 QoS,为上层应用提供高效可靠、安全隔离的网络环境。这一阶段被视为“整机柜即计算机”(Rack as a Computer)。融合架构 3.0:在硬件重构和软件定义上更进一步。在 I/O 集中化的基础上,进一步解耦 CPU 和内存形成集中的资源池,辅以软件定义的能力,将数千颗 CPU、PB 级内存以上的计算机通过软件形成任意粒度大小的资源容器,其他低功耗器件、加速器件、I/O 资源同样可以池化和任意分配,形成各种规模和配置的计算资源。同时,配合应用感知的资源分配技术,将使数据中心的资源调度完全智能化、高效
134、化。融合架构 3.0 提供统一的资源视图,将硬件资源清晰地组织成不同的功能区,功能区在软件定义的控制下形成不同的资源池来支撑云应用和 AI应用等,智能感知上层业务类型,自动重构适合的资源来为业务构建最佳的运行环境,让应用软件与运行环境之间的契合程度达到一个前所未有的水平。这种创新的体系结构,能够实现异构资源的高效融合,这一阶段被视为“数据中心即计算机”(Data Center as a Computer)。如下图 3-14所示。图 3-14 数据中心级融合计算架构示意图 从技术实现上看,数据中心级异构融合融合架构涉及到的技术有:2 来源:OCP CHINA DAY 2023 31 (1)使用高
135、速互联技术(如 CXL 2.0、PCIe 5.0等),实现 CPU、内存、存储、网络等资源的逻辑上解耦,构建资源池。例如,基于 CXL 总线协议,可以实现内存远端拓展,并通过软件定义实现远端内存多主机共享与灵活调配。网络可采用非阻塞的多级 CLOS 拓扑结构,可以提供每秒 5Tbps 的总互联带宽,满足大规模资源池互联需求。另外,未来也可以应用先进的光互连技术,实现机柜间乃至数据中心级别的资源互联,链路传输距离可达2米以上。图 3-15融合架构 3.0-系统顶层架构3(2)满足系统高速信号完整性。实际上,解耦架构给链路拓扑设计增加了复杂性,原本在服务器内部的互连总线需要在机柜内甚至机柜间的外部
136、连接;随着数据速率的不断攀升和系统链路变得更加复杂,互连链路延展已经接近极限。因此,需要应用实验设计法和响应曲面统计法等仿真方法论,对复杂链路高速互连进行高精度的拟合仿真研究,充分考虑多变量及公差分布影响(如阻抗公差、芯片性能、制造工艺、温度等因素),准确分析解耦池化系统多样化拓扑和传输速率的互连链路风险与传输距离极限。(3)运用新型供电与散热技术(如直流供电、液冷),提升计算密度与系统能效。例如,可构建直流母线供电体系,缩短供电链路,降低损耗,提升功率密度。采用液冷技术,提升服务器功率密度,并保证冷却液零泄漏。优化散热系统流阻,提升传热系数,降低PUE值。这些技术可以有效提高计算密度,降低机
137、房建设成本。综上所述,数据中心级融合架构通过在互联、调度、软件和基础设施等多个层面进行创新,实现资源的解耦和池化,支撑软件定义和业务驱动的新型数据中心,可显著提升 IT基础设施的灵活性和使用效率。这是未来数据中心发展的重要方向。另外,数据中心级融合架构在支持业务敏捷性方面也具有发展潜力。未来有望通过应用感知调度技术,实现业务类型的智能识别,然后自动调配匹配的计算资源。这种技术手段包括:应用特征抽取,通过分析应用程序代码、通信模式等自动提取应用特征;资源建模,建立应用特征与资源需求之间的映射模型;智能匹配,根据实时业务负载和资源状况,生成动态资源调度方案。这种机制进一步提高了数据中心资源利用率,
138、也使得业务部署和扩展更加敏捷。从战略高度看,数据中心级融合架构已经逐步在云计算中心、智算中心等领域开始落地,在助力企业实现 IT 基础设施数字化转型,具有多方面优势。首先,它支撑云计算、AI 等新业务在数据中心层面的弹性部署,使企业 IT 系统具备敏捷性。其次,它提升资源 3 OCP CHINA DAY 2023 32 利用效率,降低企业 IT 运营成本。再者,它简化系统架构,降低复杂性,减少运维工作量。最后,它通过软硬件深度融合创新核心竞争力,助力企业应对数字化时代的竞争环境。3.3.2 新型计算模式融合新型计算模式融合 除了以 GPU、DPU、FPGA 为代表的 xPU 计算引擎外,计算领
139、域还涌现出了其他引人瞩目的技术,其中包括 PIM(Processing in Memory,存内计算)和量子计算。业界专家预测,量子计算有望在 35 年后实现一些小规模的实际应用。这些先进计算技术也面临着如何融入当前多元异构计算平台的问题。存算一体的计算架构融合代表着计算领域的一项重要前沿技术,其潜在影响巨大。传统的 PIM 方法将计算引入了存储器中,实现了在存储器内部进行深度学习等神经网络计算的创新。例如,美国加州大学的谢源教授在 JUMP 项目中推动一项名为“Intelligent memory and storage”的研究任务,探索如何在存储器内部实现智能计算。三星电子在业内率先将存算
140、一体化(PIM)融合集成到高带宽内存(HBM)的进一步计算架构融合方案,其 PIM 技术通过在内存内核中设计一个称为可编程计算单元(PCU)的 AI 引擎来处理一些逻辑功能。与现有内存解决方案相比,三星的 PIM 技术理论上可以通过可编程计算单元(PCU)将性能提高 4 倍,同时降低能耗高达 70%。AMD 将这种存算一体技术进一步融合,在其 Instinct MI100 GPU计算加速卡中搭载了三星 HBM-PIM技术的存储器。国内也在存算一体技术领域取得了显著的进展,推出了基于 SRAM 的存算一体芯片,如“摩鸿途 H30”。这款芯片在 Int8 数据精度下,具备高达 256Tops 的最
141、高物理算力,而仅需要 35W的典型功耗。与量子计算的架构融合是另一个关键方向。与传统计算机相比,量子计算机具有天然的量子并行计算能力,已被证明在若干场景上具有相对于传统计算的极大优势。全球有超过 20 家公司正在开展量子计算相关的研究。其中,在分布式超导量子计算方面,2019 年谷歌公司 Sycamore 超导量子芯片包含了 54 个 Xmon 类型的超导量子比特;2021 年,中国科学技术大学研究团队推出了包含 66 个比特的“祖冲之号”超导量子处理器;2021 年Rigetti 公司推出的“Aspen-M”具有 80 比特量子计算机,实现了利用芯片倒装技术集两个40 比特量子芯片。在光学量
142、子计算方面,美国国家标准与技术研究院、代尔夫特大学、中国科学院上海微系统与信息技术研究所等机构可以生产兼具高探测效率(90%)、高重复频率(150 MHz)的超导纳米线单光子探测器,光学量子计算的基本操作(如概率性的控制逻辑门)、各种量子算法的简单演示验证均已实现。中国科学技术大学研究团队构建了光量子计算原型机“九章”及其升级版“九章 2.0”,据此实现了量子优越性这一里程碑。2022 年,Xanadu 量子技术有限公司在时间编码玻色采样上实现了量子优越性验证。基于量子技术的演进,开始有公司研究量子计算平台的与传统计算平台的融合技术。例如,IBM 建立了自己的量子云平台,推出了含有 127个比
143、特的处理器等。33 4 异构融合计算发展趋势异构融合计算发展趋势 基于 CPU 的同构计算,成就了 Intel 的市场重要地位;基于 GPU 的异构计算,助推NVIDIA 市值超过了万亿美金。从同构走向异构,再进一步走向异构融合,是计算架构从简单到复杂的必然演进趋势。异构融合计算方向的早期探索中,国际巨头 Intel、NVIDIA和 AMD 均已纷纷入局,历史机遇稍纵即逝,整个行业需要快速形成共识,站在国家发展战略的高度,积极投入和快速布局这一领域。4.1 通用性与高性能统一通用性与高性能统一 计算架构一直存在通用和专用的矛盾,即系统越复杂,计算模式越发展快速,越需要通用性较强的灵活计算平台;
144、但系统算力需求越来越高,就需要尽可能把业务逻辑固化成硬件加速电路,也就越需要专用性高的定制计算平台。解决这个矛盾的思路是:为不同类型的系统内计算工作任务,匹配最合适的计算处理器类型,同时不同的计算处理器组成完整的通用性较强的整体系统。通俗的讲,就是通过工作任务专业分工,实现系统整体性能最优。图 4-1 根据灵活性特征的系统工作任务分类 系统可以看作是多项工作任务的组合,这些工作任务虽然各有特点,但整体上具备“二八定律”的特点,即不同系统中大约 80%的工作任务是相似甚至相同的。针对任务的这一特点,把任务进行分类:任务相对确定,比如虚拟化、网络、存储等,这些可以称为基础设施型任务。这类任务因为其
145、确定性的特点,适合 DSA和 ASIC 级别的加速处理器处理。任务部分确定,通常是性能敏感的业务应用任务,比如 AI训练、视频图形处理、语音处理等。这类任务具有一定的确定性,但通常还是需要平台的一些弹性的能力,其灵活性要求相对较高。因此比较适合 GPU、FPGA 这样的处理器平台。任务不确定,难以确定的业务应用,适合选用 CPU平台。以及难以加速或者不存在合适加速处理器的工作任务都可以由 CPU平台处理。针对不同任务的灵活性/性能特征,把任务划分到这三个层次,然后采取各自特征能力相符的处理器平台,可以做到满足整个系统通用灵活性的同时,又可以实现最佳性能。34 4.2 计算架构走向收敛计算架构走
146、向收敛 图 4-2 根据指令复杂度的典型处理器类型划分 从 CPU 到 ASIC,从左向右,处理器的类型越多,架构的数量和种类也越多。不同类型、不同领域、不同场景、不同厂家、不同架构的处理器,如果不加以约束,会导致处理器架构的完全碎片化,进而增加异构融合的难度。异构融合计算,会面临多种处理器类型和架构;并且,随着云网边端逐渐走向融合,只有统一的系统架构接口,才能实现多种异构资源的协同,从而实现资源池化和平台融合。基于异构融合计算的理念,各类处理器架构才会逐步由定制化、碎片化走向收敛和开放,实现标准统一的开放架构,有助于促进形成行业统一的开放生态。4.3 编程复杂度降低编程复杂度降低 串行计算架
147、构符合人类逻辑思维,编程相对简单;同构并行计算架构的编程,就要复杂很多;异构并行计算,则是难度进一步提升;那么异构融合计算,便是难度大幅提升。要想推动异构融合计算的编程适配,核心的思路跟异构计算架构一致,就是要简化异构融合系统的编程复杂度,降低开发者的使用门槛,一些可能的办法如下:方法一,依据灵活性进行系统工作任务分类;方法二,通过开放标准的架构让架构数量逐渐收敛;方法三,系统分解,复杂的大系统可分解成若干个简单的小系统,针对分解后的小系统,则可以更加容易的进行编程;方法四,软硬件融合,软件迭代非常快,两个月一个小版本迭代,半年一个大版本迭代;而硬件开发难度越来越大,开发周期 1-3 年,生命
148、周期 5-8 年;硬件的迭代周期完全跟不上软件的更新节奏。需要更进一步的系统架构创新,把传统的软件层面的能力(如功能扩展性、资源弹性和扩展、完全硬件虚拟化、硬件高可用等),融入到硬件中去。通过软硬件融合,来整体的提升硬件的灵活性,优化硬件的迭代周期,让硬件迭代和软件迭代更加匹配;方法五,构建功能强大的异构融合计算开发框架。35 4.4 基础组件优化基础组件优化 常规的系统栈是分层的,即系统的多个基础组件组成单个系统层,多个系统层再组织成系统栈。异构融合计算的软硬件系统栈,是在纵向的单个异构软硬件系统栈的基础上,进行的横向整合和优化。单个纵向的异构计算软硬件系统栈性能,决定了异构融合系统最终的效
149、果,因此需要针对纵向的异构计算软硬件系统栈进行全栈优化。硬件层系统层框架层应用层 图 4-3 系统栈分层示意图 以人工智能领域为例。随着人工智能技术的快速发展,基于自研芯片算力服务平台进行训练已经成为趋势。然而,这种训练方式不可避免地会带来更多的移植与调优工作。在这个过程中,除了在集群、并行策略、算子和工具包等方面的优化外,还需要完成包括DeepSpeed/Megatron/Colossal-AI/apex 等必要组件的适配工作。为了保证程序能够正常运行,程序系统调度也需要进行调整,包括操作系统配置和网络协议参数等。其中训练的优化工作主要包含以下三个方面:首先是算子层面的优化。这包括使用算子融
150、合和算子优化等技术,深度挖掘硬件性能,提升硬件使用率。通过这种方式,可以更有效地利用硬件资源,提高训练效率。其次是策略层面的优化。这包括采用模型并行、数据并行、流水线并行、Zero 化等多级并行策略,实现超大规模训练。这样不仅可以提高训练速度,还可以扩大模型的规模,提高模型的性能。最后是集群层面的优化。这包括针对硬件的拓扑结构,对分布式训练通信、并行分组配比等进行定制优化,提升训练扩展比。这样可以进一步提高训练效率,扩大训练规模。在针对每一个纵向的单个异构系统全栈优化的基础上,进一步对横向的整个异构融合系统进行全栈协同优化。异构融合全栈协同优化将帮助我们更好地利用硬件资源,提高系统整体性能和效
151、率,为实现更加强大的系统奠定基础。36 5 异构融合计算发展建议异构融合计算发展建议 异构融合计算是未来计算领域的重要趋势,它将不同架构、硬件和技术融合在一起,以实现更高性能、更低能耗和更广泛应用的计算。为了推动异构融合计算的发展,以下是一些发展建议:5.1 加强政策引导,布局重点项目建设加强政策引导,布局重点项目建设 强化政策支持和公共服务建设,制定鼓励和促进技术创新的政策措施,包括资金支持、税收优惠、人才引进等举措。此外,应该加强对异构融合计算领域的专业人才培养和支持,包括设立相关课程、提供创业支持、建立培训和奖励机制,培养具备交叉学科背景的复合型人才,以提高行业技术水平与创新能力。同时,
152、积极推动产业合作,鼓励企业、高校和科研机构建立“异构融合计算产业联盟”。通过组织技术论坛、举办创新赛事等方式,加强异构融合计算技术的市场推广和宣传,以吸引更多开发者参与该领域的研发和应用。此外,还应引导国家基金与社会资本有序、持续性地投资,特别是重点支持融合计算技术攻关企业,为其提供资金和项目支持。明确定义异构融合计算领域的发展目标,制定中长期技术攻关研究规划,为技术研发和应用提供明确的指导方向。重点涵盖通用大芯片、普适互联操作系统、高性能数学库、卓越性能图形库、异构统一编程框架、异构任务调度软件、下一代存储技术、以及下一代网络通信协议等关键研发项目。并在实际中落地这些项目,包括建设智算中心、
153、超算中心等新型基础设施,特别关注支持具备竞争优势的项目,积极推动产业、学术界和研究机构的合作,共同助推技术创新。5.2 构建标准体系,强化融合技术牵引构建标准体系,强化融合技术牵引 建立异构融合计算的标准组织,制定相关标准和规范,引导企业和研究机构关注前沿技术,致力于算力生态的统一融合建设。注重顶层技术规划,坚持技术协同,在异构融合为核心理念的基础上,依托“异构融合计算产业联盟”和其他平台组织,与算力生态的上下游标准化组织共同制定硬件、软件以及软硬件层面的异构融合计算技术标准规范,覆盖指令集架构、产品参数规格、通信协议、数据交换、系统架构、交互接口、外观形态、服务模式等多个方面。建立适用于异构
154、融合计算的标准体系,积极与国际标准化组织合作,特别在 NOC 技术、SiP 技术、融合架构技术、统一编程框架等领域,促进异构融合计算技术的规范化和普及,以避免碎片化研究和低质量的重复工作。我们鼓励开放的发展模式,推动计算产业链中各环节主体的协同参与,促进标准与科技的互动和协调,以促进标准体系建设的开源创新,激发开源模式下的创新活力,推进标准化与数字化的融合,以提高标准的准确性、整体质量和适用性。5.3 聚焦关键技术,推动计算技术创新聚焦关键技术,推动计算技术创新 鼓励企业增加技术创新投资,强化对 CPU、GPU、FPGA 等单芯片的设计和创新能力,包括微架构设计(例如指令集、逻辑单元、逻辑单元
155、布局、流水线、分支预测、缓存设计、内存管理等)、芯片封装、内核与线程设计(包括多核心、超线程、并发管理等)、低功耗设计(例如节能模式、动态频率调整等)、安全性与可靠性(如加密技术、错误检测与37 纠正等)、芯片调试与性能优化以及制造工艺等方面的投入。加速通用大芯片的设计进程,实现不同类型计算单元的协同设计,研究最佳任务映射和调度策略,以提升芯片性能和能效。针对异构融合架构,优化操作系统、驱动程序、编译器、解释器等系统软件的泛在服务能力(包括资源管理、并行计算、交叉编译、异构兼容等)。同时,开发统一的编程模型和语言,设计领域特定语言,突破多层次编译优化技术,开发轻量级运行时调度系统,以减少开发的
156、难度和成本。研究高效的资源管理和调度技术,实现统一的系统管理和监控工具以实现动态的任务调度和资源管理,以实现不同计算单元之间的最优任务分配和资源共享,从而提高系统的整体效率和稳定性。探索新的系统集成和验证技术,开发系统集成和验证工具,以确保不同计算单元之间的有效集成和验证,保证系统的稳定性和可靠性。通过电路级优化、算法级优化、系统级优化等多种手段,提高异构计算系统的能效和性能,将异构融合计算技术应用到实际场景中,通过实践验证技术的可行性和有效性,推动技术的推广和应用。5.4 加速加速产业变革,促进新型技术应用产业变革,促进新型技术应用 附加值。探索新的计算架构,如基于异构融合的计算、神经网络计
157、算、量子计算和生物计算等,推动包括更高性能的融合芯片、更高效的算法、更优化的编译器、更快速的内存/网络访问等异构计算技术的研发和创新,以满足未来计算需求的增长。将异构融合计算技术应用到具体的行业和领域,如自动驾驶、人工智能、元宇宙等,通过实际应用来推动技术的进步,促进产业链上下游企业的合作,建立健全的产业生态系统,推动多产业的变革,共同打造未来科技的新时代。依托“异构融合计算产业联盟”,联合产业链上下游企业、科研机构、政府机构等各方力量,聚焦重点领域(如人工智能、高性能计算、物联网等),加强与相关企业的合作,开展“信息技术创新榜(优选)”活动,遴选出一批具备先进性、自主性的案例和解决方案,并进
158、行宣传推广,推动异构融合计算技术在这些领域的应用和推广,形成良好的应用示范效应。38 附录附录 异构融合计算实践案例异构融合计算实践案例 1 CPU+XPU 技术融合案例技术融合案例 Intel 公司以 CPU 为基础,推出了一种名为 CPU+XPU 的异构融合解决方案。该方案从硬件架构的演变和基于 XPU 的软件生态系统的发展两个方面进行了分析。Intel 将这种架构称为超异构,其概念与异构融合非常相似。可以看到,在保持 CPU 优势的同时,Intel 还在 GPU、FPGA 以及定制芯片上寻求创新,以实现超异构计算的融合架构。基于硬件的迭代,相应的软件生态系统也进行了跨平台、开源联盟等尝试
159、,主要应用于工业自动化、网络、能源、医疗、军事等多个领域。(1)Intel 芯片级异构融合硬件架构的形成 面对 CPU 架构上摩尔定律的放缓、Tick-Tock模式的失效、存储容量限制和互联带宽不足等问题,Intel 在大数据时代开始关注 XPU 异构架构。2018 年,Intel 向业界首次展示了 XPU 异构蓝图,该架构由 CPU、GPU、各类加速器和 FPGA 异构组合构成硬件基础,将不同类型和功能的芯片部署在同一平台上,采用先进的封装技术实现多节点部署,同时需要统一的异构计算软件来构建上层软件生态。Intel 目前在芯片和异构融合方案上的重要成果是 2023 年推出的第四代至强可扩展处
160、理器。这款处理器增加了多种加速引擎,以提供 AI、高性能计算、安全、网络、数据分析和存储等更丰富的加速功能,并具备 8 个 DDR5-4800 单路内存通道。在制造工艺方面,第四代至强处理器在单个封装上集成了多达四个 Intel 7 工艺的瓦片,采用 SoC 集成,使用英特尔 EMIB、Foveros 封装技术进行连接。单路 CPU 支持 80 通道的 PCIe 5.0,多路系统中 CPU 之间的互联升级到 4x24 UPI 2.0,数据速度达到 16GT/s,并支持 CXL1.1,实现 CPU、GPU、IO 等多芯片间的通信。(2)Intel 适配异构硬件的开放软件生态:One API、IP
161、DK、OPI Intel 推出的 oneAPI 是一种基于 CPU+XPU 异构融合芯片的开放式编程框架。通过 oneAPI,开发者可以获得一致的编程接口,覆盖了库、工具和解决方案等多个层面,实现了 OpenVINO、Analytics Zoo、BigDL 等技术,从而实现应用的跨平台复用,降低软件开发和维护成本,提供最大的开发自由度。为了适应 IPU(基础设施加速芯片,支持多个领域 DSA)和 DPU,Intel 推出了一个名为 IPDK 的社区驱动的基础设施层编程开发框架,提供了基础设施应用接口和目标抽象接口,用于工作任务应用和硬件能力供应。此外,2022 年,Intel 联合 Linux
162、 基金会发起了 OPI(开放可编程基础设施项目),为 IPU 等下一代架构和框架培养社区驱动的开放生态系统。下表总结了 Intel 在基础设施和应用加速上的全面推进,并分析了当下 Intel 在异构融合计算结构构建上的全领域布局。表 1 Intel 异构融合领域探索分析 编号编号 架构架构/特征特征 用途用途 分析分析 1 CPU 应用不可加速部分,以及其他没有实现加速引擎的任务,兜底。CPU 是 Intel 的优势领域,CPU 生态最强大。2 GPU 应用层可加速部分,以及其他相对变化较大任务的加速。Intel Xe GPU:软件第一、并行第二,适应全新的工作负载。没有历史包袱,OneAPI
163、跨平台优势。3 FPGA Intel FPGA 是全球第二大 FPGA 平台,相关生态成熟。39 编号编号 架构架构/特征特征 用途用途 分析分析 4 DSA 类 适合基础设施层任务。Intel IPU(处理器)5 ASIC类 6 超异构 CPU、GPU、DPU、AI 芯片等,融合+重构到超异构计算架构。Intel最终目标。7 跨平台 任务可运行在云端、边缘甚至终端,运行在不同厂家的硬件平台的不同类型处理引擎。XPU战略和 OneAPI框架。8 可编程 完全通用的计算平台 从完全可编程网络,扩展到完全可编程的超异构计算。9 开放 开放架构,形成行业共识,架构收敛,主导架构生态。OneAPI(框
164、架)、IPDK(框架)+OPI(开源生态联盟)。2 GPU+DPU 融合案例融合案例 在 2020 年收购 Mellanox 后,英伟达也进入了 DPU 领域并推出了 BlueField 系列产品。BlueField-2 集成了高达 200Gbps 的以太网端口和高带宽的 PCIe 接口。该芯片集成了一个高性能的八核 ARM 控制器以及一个带有在线 IPSec 和 TLS 加密的可编程的、线速转发的数据平面。BlueField-2 还包括了正则表达式(reg-ex)加速器,它能够为入侵检测、反病毒和垃圾邮件过滤等应用卸载字符串搜索,同时还提供公钥加密引擎、真随机数发生器(TRNG)以及安全启动
165、。其 PCIe Gen4 x16主机接口可以处理 200Gbps 的网络吞吐量。支持使用 16 个 Cortex-A78 核,其计算性能将比前代产品提高约四倍,并将网络带宽提高 1 倍。它将能够处理高达 400Gbps 的以太网和 InfiniBand 端口速度,其 PCIe Gen5 主机接口将使 x16 插槽的可用带宽增加一倍。2024年即将上市的 BlueField-4 将集成一个用 于 AI 加速的 GPU。这将使该 DPU芯片的 AI 性能与 NVIDIA 的 A100 等顶尖加速器处于同一级别。图 1 BlueField 系列产品图 DOCA 对于 DPU 就像是 CUDA 对于
166、GPU。为了使 ISV、服务提供商和学术界能够采用 DPU,NVIDIA 开发了 DOCA(Data Center On A Chip Architecture)。DOCA 是一个由库文件、运行时组件和服务组成的框架,建立在一套经过验证的驱动程序之上。其中的一些库与开源项目有关,而另一些则是 NVIDIA 独有的。与 CUDA 实现 GPU 编程的抽象化一样,DOCA 实现了更高级别的 DPU 编程抽象化。英伟达对 DOCA和 CUDA也进行了融合,使得 DPU和 GPU可以协同工作,这里以网络数据包的实时 GPU 处理为例。在原来的处理过程中,CPU 是协调人,也是主要瓶颈。40 它在同步
167、NIC 和 GPU 任务以及管理多个网络队列方面承担了太多的责任。因为它必须使网卡(NIC)接收活动与 GPU 处理同步。一旦 GPU 内存中接收到新的数据包,这将唤醒 CUDA 内核。图 2 CPU 协调原理图 使用 NVIDIA GPU 和 Bluefield DPU,而无需 CPU 的干预。在 DPU和 GPU 的协作方面,通过使用 DOCA GPUNetIO 库中的 CUDA 设备函数,将 NIC 寄存器暴露给 GPU 的直接访问。这样 CUDA 内核可以直接配置和更新这些寄存器,以协调发送或接收网络操作,CUDA 内核可以直接向 GPU 发送和接收数据包,而无需 CPU 核心或内存。
168、图 3 GPU协调原理图 3 CPU+DSA 技术融合案例技术融合案例 上海熠知电子科技有限公司(以下简称“熠知电子”)定位高端算力芯片的 Fabless 设计业务,并具备芯片架构设计、前端逻辑设计、后端布图设计、产品板级设计、驱动集成的芯片产业化全栈能力。结合 ARM CPU 和 DSA 架构,已推出了两代异构处理器芯片并成功完成产业化规模应用,获得了三十多项发明专利及软件著作权。熠知电子最新一代的 TF7000 系列超融合处理器采用先进的 7nm 半导体工艺,通过异构融合的方式在单芯片内集成了 40 核的 ARMv8.2 CPU(主频 2.5GHz3.0GHz)、基于DSA 架构的自研 N
169、PU(40TOPSINT8 算力)、视频编解码硬件加速器(可至多同时解码64路 1080P 视频)、SM2/SM3/SM4加解密引擎、PCIe 4.0总线控制器等功能模块,并支持通过 CCIX 协议实现处理器之间的 NUMA 互联,进一步扩展算力。TF7000 系列超融合处理器现已规模量产,已有国内多家服务器整机厂商的机型上市。TF7000 系列超融合处理器在芯片层级的异构融合设计创新,主要体现在以下五点:基于 MESH片上网络的异构融合体系 TF7000 系列选用了新型的 MESH 片上网络(Network-on-Chip),确保数据可以在众核 ARM CPU、DSA 架构的 NPU、视频编
170、解码单元、加解密引擎、DDR 控制器、PCIe 总线控制器等功能模块之间高速传输。41 图 4 MESH 片上网络架构 基于存算一体设计的异构数据交互 异构计算不同架构处理器间的数据高速交换一直是困扰业界的性能瓶颈。HBM 内存虽然有助于提示性能,但其价格昂贵且存在供应链风险。TF7000 系列的设计采用片上内存SRAM,可存放深度神经网络若干层的数据。SRAM 基于片上网络与 CPU 和 NPU 实现数据高速交互,当片内 SRAM 空间不足时 CPU 或 NPU 再访问片外的 DDR4。同时,CPU 和NPU 之间共享地址访问空间,这使得需要 CPU 和 NPU 协同处理的数据对两者同时可见
171、,以便快速交接处理。使用这种存算一体和共享存储空间的设计之后,基于普遍可以买到的DDR4内存条就可以实现高性能的人工智能推理计算。图 5 片上内存 SRAM 架构 DSA 架构的 NPU单元 人工智能推理运算的计算模式通常是可预测的,因此采用 DSA 架构实现可以在更小的芯片面积、更低的功耗、更高的运行速度下面实现人工智能的推理运算加速。熠知自研的 NPU 支持 100多种深度学习算子,配套熠知自研的 TFDL深度学习软件工具套装,可以支持用户在 Caffe、Tensorflow(Lite)、ONNX 等主流深度学习框架下训练完成的模型平滑移植切换。运用 INT8/INT16整型计算达到与 F
172、P32/FP16浮点运算近乎无损的结果精度并显著提高速度降低功耗。图 6 TF7000 片内局部图 42 基于 CCIX 实现片间互联 TF7000 系列异构处理器支持 CCIX 互联,使系统的通用算力和深度学习算力可以平滑扩展,连接拓扑如下图所示。图 7 TF7000 系列异构处理器连接拓扑 CCIX 互联使不同的 Die 之间的计算单元形成了 NUMA 节点,跨节点的处理器之间彼此具备数据一致性,从而为大规模的计算系统提供了技术基础。基于 Chiplet实现算力扩展 Chiplet是目前行业内实现芯片算力扩展的热门议题和技术方向。TF7000 系列使用 Chiplet 技术实现从单颗处理器
173、 40 核到单颗处理器 80 核的算力扩展,将高速信号完整性设计与成熟的基板技术相结合,实现了 chiplet芯片扩展的量产。图 8 TF7000 系列 TF7000 系统异构处理器可广泛应用于电信、金融、电力、交通、医疗、教育等同时需要通用算力和 AI 算力的行业,能灵活部署在云端或边缘。TF7000 已经与国内各主流的操作系统、云平台、集中式数据库、分布式数据库、中间件、大数据平台、数据安全等软件完成了互认证,方便用户快速实现系统集成和部署。4 DPU+云原生技术融合案例云原生技术融合案例 云原生技术中的微服务、声明式 API、Serverless 等高内聚、低耦合的服务形态支撑了持续交付
174、、自动化管理、弹性伸缩等特点,从而实现更轻盈、更敏捷、更弹性的业务系统。但大量 sidercar 容器的使用,不仅导致系统资源消耗较高,也让容器网络存在实现负载,转发性能不足的问题,通过 DPU 针对云原生平台网络部分进行卸载和加速,能够提升云原生业务部署规模、提高网络转发吞吐量和降低网络转发时延,构建更高效的云原生网络。对于云原生网络,通过 DPU 的网络卸载,可以对服务网格上进行加速,解决业务部署规模受限问题:加速方式一:OVN 卸载 OVN在云原生网络中应用较为广泛,通过 DPU对 OVN进行加速,实现云原生网络全卸载,提供了高性能的云原生网络环境。43 图 9 OVN 卸载 加速方式二
175、:基于服务网格的网络卸载加速方案 在对服务网格的加速方案中,将 Sidecar 模式的服务网格转换成集中式服务网格,无Sidecar 模式可节约更多资源,提升业务部署规模。同时可以将 Envoy 代理卸载到 DPU 卡,在 DPU 卡上提供更多遥测能力,在 DPU 上对遥测进行集中式管理也降低了整体运维难度。图 10 基于服务网格的网络卸载加速方案 基于 DPU 加速卸载云原生网络中的 OVN 和服务网格不仅实现更高性能云原生服务网格的,有效提升云原生网络性能,提高云原生业务部署规模,而且降低了整体拥有成本,同时高性能的软硬一体也使得云原生网络可以实现统一治理、统一生态、智慧编排、敏捷运维。5
176、 超融合高密度计算技术案例超融合高密度计算技术案例 现有计算系统的要求已经超出了仅仅支持高密度计算的范围,而是需要广泛支持各种应用领域,包括深度学习、大数据和云计算等。为了满足这些需求,计算系统需要在内部不同层次上融合多种计算形态,以提供更强大和灵活的计算能力。通过灵活构建计算模式、调整系统配置、整合计算形态以及实现计算分布的透明化,系统可以实现超融合和应用软件的自适应性,从而满足不同应用场景的需求。44 图 11 高密度计算整体架构图 曙光科研高密度计算解决方案包含“三横三纵”6 个架构层级。“三横”包含了基础平台、融合计算框架以及科研创新应用平台;“三纵”包含了服务门户、运维系统和安全防护
177、体系。基础平台是系统的骨架,包含浸没式相变液冷冷却技术、冷板式液冷冷却技术等末端基础设施;通用处理器及异构加速器等超级计算单元;大容量硬盘、闪存及分布式文件系统等大数据存储关键部件;由多维超高速网络构成的超高速互联体系等。融合计算框架是系统的血肉,它包含了融合 MPP 计算、SMP 计算、内存计算等不同计算框架的超融合资源管理调度系统以及面向各种科研计算应用的开发环境和基础算法库。科研创新应用平台是系统的灵魂,承载着面向高能物理、纳米材料、基因测序、分子动力学、虚拟天文台等各类科研计算服务。“三纵”处于系统的外围,为系统的健康运行保驾护航。6 多域处理器融多域处理器融合技术案例合技术案例 高性
178、能计算(HPC)对与日常生活密切相关的领域产生了深远的影响,包括天气预报、增材制造、材料发现和设计、生物燃料转化、工业设计等。今天主流的超级计算机为 HPC提供每秒千万亿次(P 级)的计算能力。虽然这些千万亿次系统已经相当强大,但预计下一个超级计算机的里程碑百亿亿次(E 级)计算将很快实现。作为超级计算机的关键组成部分,高性能微处理器在超级计算机中发挥着重要作用。用于 HPC 的单微处理器芯片运算能力应达到双精度 10TFLOPS 的水平,否则超级计算机中的微处理器芯片数量将过多而难以有效维护。因此,双精度 10TFLOPS 级别的微处理器正成为当今超级计算机设计的竞争优势。为了实现这一目标,
179、国防科技大学计算机学院自主设计了一种名为 MT-3000 的异构多域处理器,如图 12所示。45 图 12 MT-3000 高性能计算(HPC)专用的异构多域处理器体系结构图 图 13 MT-3000 高性能计算(HPC)专用的异构多域处理器物理版图 MT-3000 包含 16 个 CPU、96 个控制核心和 1536 个加速器核心,在 1.2GHz 的工作频率下,其双精度性能达到 11.6TFLOPS,能效为 45.4GFLOPS/W。MT-3000 有四个设计亮点:(1)异构多域微体系结构:16 个 CPU 组成通用域,96 个控制核心和 1536 个加速器核心组成加速域,该域被均匀地分为
180、四个自治集群;(2)融合 VLIW 和加速器阵列的微体系结构:每个加速器核心以 VLIW 方式工作,每 16个加速器核心和一个控制核心组成一个加速器阵列;(3)超高速带宽片上向量存储器:支持两个向量加载/存储操作,为加速阵列中的 16个加速器核心提供 162的双字;(4)层次化互连网络:在通用域中,一个 mesh 网络连接 16 个具有缓存一致性的CPU。在加速域中,4 个 crossbar 网络连接 96 个控制核心和 1536 个加速器。8 条高带宽数据路径将 mesh 网络和 crossbar 网络连接在一起,充当通用域和加速域之间的数据共享桥梁。基于 MT-3000 芯片,构建了一个千
181、亿级超级计算机原型,包含 1024 个 MT-3000 芯片,实现峰值双精度性能约为 12 peta flops。HPC经典测试集 linkpack计算效率达到 80%。46 7 通用超异构处理器技术融合案例通用超异构处理器技术融合案例 矩向科技定义了一款新的处理器芯片类型:通用超异构处理器(GP-HPU,General Purpose Hyper-heterogeneous Processing Unit)。图 14 通用超异构处理器 GP-HPU架构示意图 通用超异构处理器 GP-HPU,通过 NOC总线,把众多的计算节点连接成一个芯片系统。从功能视角看,GP-HPU 和 SOC 类似;在
182、架构上 GP-HPU 和 SOC 的主要区别在于每个加速处理器需要“图灵完备”,成为一个可独立工作的小系统,可直接和其他小系统进行交互且不需要主 CPU 的参与。每一个处理器作为一个小规模的类 SOC 的小系统,再通过分布式架构,可构建规模数量级提升的大系统,也非常有利于芯片系统的平行扩展。图 15 通用超异构处理器 GP-HPU功能框图 系统任务主要分为三类:(1)不经常变化的任务,归属基础设施层,由 DPU 覆盖;(2)业务应用加速部分,归属到弹性应用加速层,由 GPU 等业务加速芯片覆盖;(3)业务应用不可加速部分,以及其他没有加速支持的任务,归属到业务应用层,由 CPU 覆盖。从功能视
183、角,GP-HPU,可以看做是 CPU、GPU 和 DPU功能的集合。但 GP-HPU不是这三个芯片功能的简单集成,通过不同类型处理器的深度合作,才能实现“团队协作,整体最优”,实现性能和灵活性的兼顾。最后,是系统层次。通用能力的构建是大算力芯片成功的关键。如何实现异构融合计算的通用能力,是异构融合计算能否落地的关键。图 16 通用超异构处理器 GP-HPU在边缘计算场景的应用 CPU、GPU 和 DPU 三颗芯片,通常来自于不同的公司,实现三者间的深度协同比较难。在单芯片内部实现异构融合计算,是相对可行的路径。此外,受限于单芯片所能容纳I/O VirtCPUNet-DSAStor-DSAHPN
184、Security-DSANet-DSAStor-DSASecurity-DSAI/O VirtI/O VirtHPNHPNCPUCPUCPUCPUCPUGPUGPUAGI-DSAAGI-DSAOther-DSAOther-DSAPCIe/CXL接口高性能网络 弹性存储 弹性网络管理监控虚拟化+IaaS服务安全(零信任)AI加速弹性加速VM/容器运行环境高速接口基础设施加速弹性应用加速业务应用CPU功能DPU功能GPU功能其他加速传统服务器超异构服务器功能融合的超异构处理器GP-HPU47 的计算规模上限,目前的单芯片异构融合计算,比较适合边缘等相对轻量的计算场景,不太适合云计算等相对重量的计算
185、场景。GP-HPU,经过“通用性”能力的强化设计,可以广泛使用在边缘服务器、AI 推理服务器、存储服务器、企业云服务器等轻量级场景,还可以使用在智能座舱、MEC 接入设备、低速无人车等场景。8 超级计算集群超级计算集群 SCC 技术融合案例技术融合案例 从每年两次的 TOP500 世界最快的超级计算机排名数据可以看出,高性能计算用户最关心的是 HPC 系统的关键性能指标:虚拟机云服务器能否提供物理机 CPU(GPU)具备的单节点高性能?网络是否满足 HPC 计算的低延迟高带宽,从而保证足够高的并行效率?存储能否支持并行文件系统所需的集聚带宽和响应速度?长期以来,这三点都是 HPC 行业上云的障
186、碍,阿里云通过基于神龙云服务器的 SCC 超级计算集群产品应用,通过软硬件协同创新,兼顾了云计算的弹性、稳定性和高性能计算对并行性能的极致追求,如图所示。图 17 阿里云超级计算集群的三点突破(1)弹性裸金属服务器(由称神龙)是一款同时兼具虚拟机弹性和物理机性能及特性的新型计算类产品,基于自主研发的下一代虚拟化技术融合打造。基于神龙架构的弹性裸金属实例,vCPU 可以获得等同甚至超越物理机的性能输出,通过设置 HT OFF,NUMA ON和进程绑定,HPC 应用可以释放裸金属极致性能。(2)融合 RDMA 互联支持,提高大规模集群加速比。采用 RoCE网络的 RDMA通信实现计算节点间 MPI
187、通信,满足 HPC 应用的低延迟通信,得到近乎线性的 Linpack加速比。(3)构建在盘古块存储之上的 CPFS 并行文件系统,具备 MPI 并行 IO 所需并行文件系统全部功能,并按需提供额外数据安全和拷贝,实现高吞吐量优化和线性拓展性能。对于无法立刻迁移到公共云 SCC 计算服务的用户,阿里云还在飞天专有云输出了基于Apsara Stack 企业版和敏捷版的 SCC 专有云集群,提供基于飞天专有云平台和第三方 IaaS管理平台的超级计算集群,其中 SCC 仍然使用基于神龙云服务器的弹性裸金属,而节点间互联则采用 Infiniband IB 网络,取代了公共云上的 RDMA ROCE网络,
188、这是从公共云切换到专有云(私有云)的一个技术权衡;当前 RDMA 有不同的实现方式,龙蜥开源社区高性能网络团队也在做 RDMA 技术的前沿探索和产品化实践,来自阿里云的龙蜥社区贡献者是Linux 社区 ERDMA 的 Maintainer。用户可以在飞天专有云的 SCC 集群上获得弹性裸金属集群的性能,和专有云带来的弹性,同时通过 IB 获得低延迟高带宽的互联,用户可以选择在此之上构建自己的 HPC 软件栈,也可以使用专有云版本的 EHPC 作为自己的 HPC 平台,或者选用第三方 HPC SaaS平台。9 OAM 异构融合系统架构异构融合系统架构 2019 年,浪潮信息率先研发了一种基于开放
189、加速架构的异构融合系统MX1,采用了高带宽、双供电等技术,互联总带宽达到 448GB/s,并提供全互联(Fully-connected)和48 混合立体互联 HCM(Hybrid Cube Mesh)两种互联拓扑,有利于用户针对不同深度学习模型、根据芯片通信的需求灵活设计芯片互联方案。针对不同 AI 芯片的功耗差异,MX1 采用两套独立的供电方案,12V 供电最大功率为 300W,54V 供电最大功率为 450W-500W,支持各类高功耗的 AI 加速器。MX1 单节点设计支持 8 颗 AI 加速器,并可通过高速互联Scale-out扩展支持到 32颗 AI加速器,满足超大规模深度神经网络模型
190、的 AI计算需求。2021年,集成两颗86 CPU和 8颗 OAM的异构融合架构服务器 NF5498A5问世(图18),单节点集成 8 颗 54V 开放加速计算模块、单颗最大功耗 400W,2 颗高性能 CPU、最大核心数 128 核、单颗最大功耗 280W,CPU-GPU 通信带宽提升 4 倍,卡间互联带宽达PCIe 4.0 通讯速率的 9 倍以上,跨节点支持通过 QSFP-DD完成异构加速集群互连、带宽可达 448 GB/s(图 19),满足服务器节点之间模型参数及训练数据的上百 GB/s 的并行通信带宽需求。图 18 异构融合架构服务器 NF5498A5(a)风冷形态;(b)液冷形态 图 19 基于板端 QSFP-DD 的跨节点互连拓扑 近年来,以浪潮信息、超微为代表的服务器系统厂商先后研制了多款支持 OAM 的异构融合架构服务器,在全球范围内开展了丰富的产品和应用实践,验证了异构开放加速技术的可行性,开放加速计算生态体系日益壮大。当前,生成式 AI 技术和产业发展推动 AI算力需求高速增长并迅速扩展,新兴的 AI 加速芯片创新亟需坚实的 AI 服务器系统平台支撑,统一开放的产业标准会有效降低技术获取成本,推动创新技术普及,为产业发展赋能提速。