会议纪要
2022年12月12日,第八届高性能计算中间件技术研讨会(HPCMid2022)成功召开。受新冠疫情影响,2022 CCF全国高性能计算学术年会(CCF HPC China 2022)完全采用线上形式举办,本研讨会也同步调整为线上直播的形式。
一、研讨会简介
高性能计算中间件技术研讨会面向科学与工程计算数值模拟应用在当前及下一代超级计算机上面临的挑战,围绕高性能计算中间件关键技术,邀请国内外学者报告最新研究进展并探讨未来发展趋势。会议创办于2015年,每年固定在全国高性能计算学术年会前一天举行,已分别在无锡、西安、合肥、青岛、呼和浩特、绵阳、珠海成功召开了七届,今年是第八届。
本届研讨会以“适配新型体系结构的性能优化技术”为主题,聚焦后摩尔时代新型体系结构为科学与工程计算带来的机遇与挑战,探讨新型体系结构下可移植性能优化技术的发展趋势。
二、研讨会概况
本次会议吸引了来自高等院校、科研院所、企业等诸多专家学者。会议议程包括邀请报告和Panel主题讨论两个环节。
报告环节安排了12个邀请报告,报告人分别为:
● 刘伟峰 教授(中国石油大学)
● 李士刚 研究员(北京邮电大学)
● 刘杰 研究员(国防科技大学)
● 王龙 研究员(华为公司北冥实验室主任,计算系统优化首席专家)
● 喻之斌 研究员(华为公司云竖亥实验室主任,中科院深研院首席科学家)
● 谭光明 研究员(中科院计算技术研究所)
● 薛巍 副教授(清华大学。受疫情影响,由博士生李亿渊报告)
● 彭林 副研究员(国防科技大学)
● 张鹏 副研究员(中科院高性能数值模拟软件中心)
● 杨海龙 副教授(北京航空航天大学)
● 张峰 副教授(中国人民大学)
● 翟季冬 副教授(清华大学)
首先由研讨会主席莫则尧研究员做开幕致辞,介绍了本届研讨会的背景与主题。他指出,后摩尔定律时代,计算机发展受到功耗影响,体系结构与计算技术也在快速发展,研讨会希望搭建高性能计算软件中间件开放交流平台,紧跟日新月异的硬件体系结构与计算技术,希望通过讨论,促进新型体系结构下科学与工程计算、装备数字化领域的发展。
三、邀请报告情况
上午的报告由莫则尧研究员主持(由于疫情影响,原定主持人张林波研究员改为莫则尧研究员)。
● 来自中国石油大学的刘伟峰教授分享了题为《PanguLU:一个面向异构分布式平台的开源直接解法器》报告。报告介绍了稀疏直接法解法器主流软件包的发展历程,并总结了稀疏LU分解在异构分布式平台上的性能优化难点。报告指出,稀疏LU分解由于其数据依赖和计算模式十分复杂,在异构分布式平台上会遇到系统利用率低、负载不均衡、通信开销大等问题。本次报告介绍了中国石油大学超级科学软件实验室近年来在异构集群上加速稀疏LU分解的一系列工作,以及对应的开源分布式直接法解法器软件包PanguLU。详细介绍了分块策略及其涉及的稀疏BLAS的优化策略、无同步通信优化策略、分布式稀疏三角解优化策略等关键技术,最后展示了PanguLU和SuperLU、MUMPS的实验性能和可扩展性对比。
● 来自北京邮电大学的李士刚研究员分享了题为《Efficient Quantized Sparse Matrix Operations on Tensor Cores》报告。报告指出,张量处理器高性能稀疏矩阵库的根本困难在于Tensor Core对数据布局提出了严格要求,并且缺乏高效的低精度整形数据集结操作。本报告基于稀疏格式SR-BCRS研发了张量计算核心上高性能低精度整型稀疏矩阵运算库Magicube(持两个输入矩阵具有不同精度),具体讲解了SPMM和SDDM的高效实现策略,在保证准确度的同时,大幅降低了端到端稀疏Transformer的推理延迟。
● 来自国防科技大学的刘杰研究员分享了题为《面向天河新一代超算系统的算法和软件》报告。报告围绕超算应用的需求与挑战,介绍了天河超算系统的发展历史与新一代天河系统的体系结构组成与特点。报告中详细介绍了天河软件开发平台如何应对超算应用挑战,面向天河系统,汇聚共性数值问题,设计多科学数值求解器,持续优化改进性能,支撑应用快速开发,充分发挥系统计算性能。最后介绍了部分典型应用案例,并展望了超算未来的发展趋势。
● 来自华为公司北冥实验室的王龙主任分享了题为《鲲鹏处理器的HPC应用优化与性能可移植研究》报告。本次报告介绍了鲲鹏处理器的Top10应用软件优化经验、应用驱动下的E级系统软硬件协同设计、AI for Science建模、性能可移植在MLIR/数据流图/性能优化建模等方面工作。在当前超算系统性能与应用实际性能鸿沟日益拉大的压力下,报告强调了应用优化研究的必要性,指出发展HPC中间件是缩小这一鸿沟、最终提升处理器有效算力的必由之路。并认为硬件、基础软件、应用研究三者缺一不可,要发挥“建模-算法-性能工程-硬件”四个环节的乘法效应,才能让国产处理器取得竞争性的有效算力。这些中间件的认知和沉淀会将我国计算学科推向新的高度,势必会决定未来国产处理器的格局。
● 来自华为云竖亥实验室的喻之斌主任分享了题为《应用驱动的体系结构设计与系统性能优化》报告。本次报告介绍了应用驱动的体系结构趋势,以及华为云竖亥实验室在云负载特征刻画方法、典型云负载特征分析、Proxy基准测试程序生产和面向应用特征的系统性能优化等方面的工作。本报告指出由于真实的业务场景下云上程序对指令的使用频率与SPEC CPU差距较大,未来需要以应用特征驱动体系结构的发展。报告认为,应用的发展会影响处理器架构发展,而市场会结束架构争议,最终或许需要针对应用层次重新设计指令集。
● 来自中国科学院计算技术研究所的谭光明研究员分享了题为《高性能计算性能工程》报告。本次报告旨在从复杂系统的角度出发,重新审视高性能计算性能工程,从而更好应对后摩尔时代处理器与体系结构多样化、超算系统复杂化所带来的挑战。报告从性能危机和复杂性、性能工程技术思想和性能工程技术案例三个部分,介绍了性能危机的来源,通过对应用复杂性分类为可移植性能优化的找到发力点,并给出了性能工程的定义、技术体系和基本方法。报告最后介绍了AlphaSparse。
下午的6个报告由徐小文研究员主持。
● 来自清华大学的博士生李亿渊代表薛巍副教授分享了题为《面向偏微分方程显式求解器的高性能代码自动生成工具》的报告。本报告主要介绍了针对偏微分方程显式求解器领域专用语言及自动代码生成工具。该DSL基于基于Python语言,并且从数据结构、差分算子、空间离散表示、中间表示生成等几个方面对矩形网格上的模板计算进行了不同层面的抽象。最后以中科院大气所GMCORE动力框架面向新一代神威超级计算系统和通用集群系统的重构工作为例,展示了该工具的可行性。报告从数据、算子、空间离散表示、外部拓展、中间表示生成这几个方面详细介绍了语言特性优化策略,也介绍了面向后端的代码生成优化方案。
● 来自国防科技大学的彭林副研究员分享了题为《面向新一代天河异构处理器的程序设计与优化》报告。报告介绍的国防科技大学为新一代天河系统自主设计异构处理器MT3000。本次报告首先介绍了MT3000处理器的体系结构、Matrix3000的异构编程模型与常用的性能优化方法。之后介绍了目前所支持的多种编程接口,主要包括libMT、异构多线程库hthreads、OpenCL等。
● 来自中物院高性能数值模拟软件中心的张鹏副研究员分享了题为《大规模SEMD:一种面向数值模拟领域的性能可移植编程接口》的报告。报告调研了目前国内外主要的性能可移植技术现状与优缺点,提出了能够同时应对应用与体系结构复杂性的性能可移植编程接口——SEMD。该接口对数值模拟领域通用的语义进行了抽象,完全批评比了底层硬件特征和性能优化实现,通过不同的后端性能优化技术为应用赋予性能的可移植性。
● 来自北京航空航天大学的杨海龙教授分享了题为《面向高性能计算的系统性优化方法与技术探索》的报告。本报告总结了对于高性能计算的系统性能优化所面临的三个挑战,并且从体系结构高效适配、编译优化与自动调优、程序低效行为分析等角度,对高性能和高可扩展的系统性优化方法与技术进行了探讨。报告之后详细介绍了如何利用Tensor Core对Stencil计算进行性能加速。
● 来自中国人民大学的张峰副教授分享了题为《适配GPU体系结构的压缩数据直接计算技术研究》的报告。本报告指出压缩数据直接计算技术在GPU上的应用具有重要意义,总结了压缩数据直接计算技术向GPU移植过程中在数据依赖所面临挑战,并介绍了相应的解决与优化思路。本报告围绕团队提出的一种新的结构化数据压缩直接计算技术及其相关的GPU适配策略进行了详细介绍。
● 来自清华大学的翟季冬副教授分享了题为《基于国产超算的百万亿参数超大预训练模型训练方法》的报告。报告针对超大规模预训练所面临的并行度问题、参数存储问题进行了回顾,并且利用模型内在的局部特性发现并行性,从数据并行与模型并行两个角度开展MoE模型超大规模并行预训练。随后报告介绍了并行预训练在丙型策略选取、高效数据存储、数据精度确定、动态负载均衡等方面的挑战与解决方案,以及综合应用上述手段在高产超算上开展训练加速并所取得的优异性能表现。
四、Panel 讨论
Panel讨论环节由莫则尧研究员主持,邀请了王龙、刘杰、谭光明、刘伟峰、喻之斌五位嘉宾围绕 “性能优化:个性vs共性” 这一主题开展深入讨论与交流。五位嘉宾结合各自研究与经验,畅所欲言,现场气氛十分热烈。
首先是每位嘉宾分别作了3分钟左右的观点发言。
华为计算系统优化首席专家王龙研究员指出,相比硬件与基础软件人员,性能优化人员其实扮演着“吹哨人”的角色,一方面,性能优化人员不能固步自封,要逼着自己进步,反哺到硬件与基础软件,才能对整个计算学科形成共赢的正反馈;另一方面,基于个性优化的经验抽象思考出共性,需要一个艰难摸索的过程,但也是本领域中坚力量应该矢志不渝追求的目标,同时目前国际上的性能可移植方向进展非常值得关注。除了自身的努力,也呼吁对性能优化更多的支持和关注。
国防科技大学的刘杰研究员分享了他在天河系统中的性能优化经验。他指出天河系统的设计初衷是好用、实用和易用,并通过应用性能建模指导下一代体系结构设计,实现应用驱动的软硬件协同设计。尽管他一直在天河系统中从事工作,但是他认为在性能优化过程中,需要不断总结应用共性并将其凝练为共性库。
中科院计算技术研究所的谭光明研究员表示与王龙研究员有相同的感受,认为大家目前对性能优化工作重视程度不高。根源在于性能优化尚不存在一个统一的严格定义,也缺乏具体化的工作载体,更多以一种技术经验的形式存在,无法使硬件设计与应用开发人员直接体会到其价值。他认为应该从应用的共性特征出发从中间件的角度提出抽象层,对上可以承接应用特征,对下可以承接体系结构,并将此作为性能优化的工作载体,将技术落实到具体软件层,进而得到更多的重视。
中国石油大学的刘伟峰教授旗帜鲜明地表达了自己的观点,认为性能优化应该高度关注个性。首先,共性性能优化效果一般不如个性优化。其次,尽管个性优化经验一般难以迁移到共性与批量应用,但是这可以从从业人员供给侧的角度解决,通过培养更多的性能优化人才从而降低个性优化的成本。最后他认为,当前阶段体系结构演化速度快,通过个性应用的极值性能优化,可以加深对体系结构的认识与理解,而这些经验可以通过编程框架反哺共性优化。
华为云竖亥实验室的喻之斌主任对性能优化重视度低的现状感同身受,并且认同谭光明研究员关于凝练技术载体的观点。他指出单个应用性能优化强烈依赖于对体系结构的理解,人才供给问题短时间难以解决,可以利用AI技术来解决该问题。他认为AI自动性能优化目前远远没有达到AI能力的极限,未来还有很多可以发掘的空间。
来自清华大学的翟季冬副教授认为优化工作难度大,但与系统与硬件相比,重视程度相对较低。他认为应该从极致个性优化出发,总结体系结构经验。事实上,共性优化难以暴露处体系结构与超算系统的重大挑战难题,很多优化技术都是从个性应用的极致优化中总结出来的。因此他总结到应该从个性出发,总结共性经验,并支持共性性能优化工具包的开发。
通过第一阶段的发言,研讨会主席、中国工程物理研究院的莫则尧研究员对五位嘉宾的发言做了总结:他非常认可技术载体的观点,并且认为目前的优化技术只聚焦于单点问题,无法实现批量应用全系统、全流程的端到端性能优化,因此不便于应用开发人员使用。未来需要借鉴“软件定义”的方法,从个性应用特征出发定义应用的性能优化共性特征,从中凝练性能优化接口,并通过软件工程的手段实现应用开发人员与底层硬件之间的分离,而针对个性特征的优化经验也可以以底层实现的方式,不断集成到这个中间层之中。而接口应该是面向客户的,并且在应用牵引下,引领个性技术的发展。
在自由发言阶段,大家展开了热烈讨论。
北京应用物理与计算数学研究所的徐小文研究员从时间与空间两个维度讨论了个性与共性的问题。从时间的维度来看,新机器刚出现的时候,一定要针对该机器的体系结构进行个性化极致性能优化,证明机器的可用性。从空间角度来看,不同的行业有不同的侧重,高校由于学生多,因此可以做创新的个性化极致优化,而行业应用部门,由于专职从事性能优化的人员相对较少,因此需要以共性优化技术为主。他列举了像美国LLNL和九所这样的行业单位,HPC的人员通常是10%左右。从这个角度出发,他引出了关于高校与应用部门相合作的问题,在不同行业之间分工,再通过合作集成的方式实现个性与共性的共同发展。
回应莫则尧研究员“共性抽象-架构设计-个性实现”三个层面的总结,王龙研究员首先澄清,强调共性是希望百尺竿头更进一步,基于的观察是国内在性能优化个案研究已经有很多很好的工作,这是基础,否则共性研究是无源之水;其次,最近光明在alphasparse的工作令人震动,不禁反思自己在做完优化后缺乏深刻的总结和抽象。比如性能优化的本质是不同粒度上的数据移动与调度的优化,理应存在不同粒度层面原子级的概念定义、抽象与方法论,因此共性优化是可能的,不能陷入“不可知论”。最后,回顾HPC几十年来发展的现状,会发现当下的主要矛盾可能更加是大量优秀的性能优化代码和技术无法直接作用到真实的遗留代码上,而大量的遗留代码正是HPC的显著特点。这就需要大量的人力投入,也无法跟随体系结构的演进进行迭代与传承。套用编译“find&replace”的概念,当下的情况是replace相对较多,但find即模式匹配的研究还很少,这个方向应该是大家去勇敢挑战的关键方向。
接着王龙研究员的观点,谭光明研究员谈了自己的感受,他认为莫则尧研究员的三层总结给了自己很大的启发。由于优化技术有一定的相似性,如果继续按照过去的方式只进行个性化优化研究,工作将慢慢失去挑战性和成就感,自己慢慢变成“老中医”,经验丰富但难以传承,这对于整个行业和从业人员发展来说都是不健康的。因此他非常赞同莫则尧研究员关于共性接口定义的观点。
针对个性研究,徐小文研究员补充了一个开放性问题,即尽管体系结构与应用特征千差万别,但是,对于给定的计算模式和体系结构,能否存在一个类似于解法器最优算法框架(如多重网格算法)的理论上限,为性能优化标定一个目标和空间,并由此认为高校的创新研究应该聚焦这些方面。
听了各位专家的发言,北京航空航天大学的杨海龙副教授非常认同,他认为可以先从个性研究出发,随着经验的积累,从而将这些经验沉淀到编译器或编程框架上。除此之外,他从高校老师的实际情况出发,提出了关于从事性能优化技术与了解应用领域知识和应用特征的问题。即,共性研究除了要关注优化技术外,更重要的要关注应用特点。然而目前高校的实际情况是,由于应用研究存在大量的工程性工作而难以写文章,学生缺乏对应用了解的兴趣,因此该如何培养学生对应用的了解?这个问题也引发了在场专家关于人才培养方面的讨论。
翟季冬副教授首先结合自身研究经历发表了对应用研究的看法。他指出,尽管AI领域可能存在一些个性算法,但是计算模式相对简单,因此HPC领域的性能优化从业者存在优势,门槛低,学生也很容易进入。但是,对科学与工程计算应用而言,由于这些应用一般都经过了长期积累,想在短时间内了解其应用的物理背景和理解数值计算方法,难度相当大。
谭光明研究员认为性能优化必须从应用出发,而想要深入理解应用特征就一定要从应用背景出发,并且离不开长时间的积累。因此人在培养过程中,除了计算机相关知识外,学生也应该了解一些应用的实际问题、物理建模与数值离散方法。他还从自己的经验出发,分享了自己当年读研究生时自己学习生物和生命科学知识的经验,为自己日后从事相关应用的HPC研究奠定了基础。
刘伟峰教授以自己所在的中国石油大学为例,指出尽管学科交叉情况很普遍,但是真正实施起来存在巨大的困难。在学生培养方面存在同样的困难,他指出目前高校中关于计算机基础知识方面的培养普遍较弱,而研究生阶段重新学习又比较浪费时间。因此他认为应该从全局的角度出发,将计算机专业优势院校的教学理念、方法、经验下沉到全国其他高校,从而增加高质量HPC人才供给。
刘杰研究员认为,相对而言,在计算机学院的本科生中培养应用背景难度很大,他提到基础算子领域以线性代数为主,学生相对容易理解,进行个性化研究比较容易。但是对于应用来说,必须进行长周期的学习,投入产出比低,学生普遍缺乏学习动力。从这个角度来看,跨学科招生可能是一个好的解决办法。不过,从另一个角度来看,AI for Science目前较为火热,而AI算法的底层算子与HPC基础算子库接近,便于学生理解,因此在该方向培养相关人才存在一定可行性。
王龙研究员认为,面向应用的HPC性能优化由于领域知识艰深等困难性,人才培养周期一般相对较长,并以贾伟乐博士为例进行了案例说明,积累十年+伟乐的专注执着是关键,也是奇迹。一个观察是从业人员的个性是两极化的,要么特别乐观勇敢,要么是特别木讷害羞的“钝感者”。从分布看,大多数人并不在这两极,我们应该思考怎么对这些后来者予以很好的引导和培养?这才能显著增加人才储备。
徐小文研究员倡议高校团队可以考虑与应用部门多开展交流与合作,在合作中了解应用,是解决该问题的一个途径。
Panel环节最后,大家还讨论了关于共性性能接口定义等方面的问题。
Panel环节激发了大家的思想,引发了热烈讨论,大家意犹未尽,希望会后针对某些问题能够继续开展深入研讨,并期待明年的HPCMid2023线下面对面交流。
研讨会在大家云合影后,圆满结束。