西安交大获第五届“神威杯”国产CPU并行应用挑战赛总决赛冠军
2021年9月,第五届“神威杯”国产CPU并行应用挑战赛总决赛在江苏无锡落下帷幕,来自西安交大计算机科学与技术学院高性能计算团队的研究生王子衡、赵明强、蔡玮林、陈鑫行组成的Cyberpunk6031队,在指导老师陈衡的带领下获得冠军。
这已经不是高性能计算团队在国产CPU并行应用挑战赛第一次获奖了。团队自2019年起,已连续3次组队参赛并全部进入决赛,2019年获得三等奖,2020年获得并行基金奖,2021年获得第一名。
每次参赛都是一次历练和成长
时下大热的云技术、人工智能、元宇宙、5G、大数据……几乎所有热点领域和技术前沿的背后都需要超算做支撑。创办于2017年的国产CPU并行应用挑战赛(以下简称“CPC”)既是国产超算领域的专业赛事,也是国产“芯”平台人才选拔培育的“孵化器”,大赛立足于国产超算平台,通过聚焦前沿技术应用风口,不断扩宽广度,挖掘深度,为构筑良性人才技术发展生态、国产自主平台的建设创造更多可能。
CPC由中国计算机学会主办,在超算领域具有编程难、专业技能要求高、学科交叉、比赛周期长、题目新且难、队员精力消耗大、思想压力大等特点。主要难点来自于C/C++编程语言的复杂性,和设计多进程/线程协同计算的合理性。对参赛者的个人能力、实验室积累的要求较高。CPC采用初赛和决赛两轮赛制,初赛和复赛分别持续1个月,且题目无相关性,涉及各个领域的模拟应用,大至天体物理,小至基因碱基,需要学习大量的应用相关知识以及新的并行编程方法。2021年的比赛是在神威新的架构上进行,参赛者需要学习新的编程方式,需要对新机器进行测试和分析,这无疑进一步加大了难度。今年题目是图像领域的注意力机制,这是近两年涌现出来的热点,需要进行相关知识的学习,而且没有可参照的工作经验。
高性能计算团队2019年首次参赛时获得三等奖,2020年获得并行基金奖。两届参赛经历让团队更加熟悉竞赛规则,也让带队老师陈衡更清晰地了解了各个队员的特点。在第五届CPC竞赛组队时,陈衡根据队员各自的研究方向和兴趣,让王子衡同学担任队长,研一同学赵明强、蔡玮林和陈鑫行组队。队员在吸取去年参赛经验的基础上,除了理解神威新的硬件架构外,还需要根据赛题进行具体分工,以便快速学习和掌握新的知识。
本次决赛紧扣Transformer这一深度学习前沿网络和相关应用热点,要求参赛选手在新一代申威众核架构下,优化基于PyTorch实现的ViT模型训练任务,并针对其中的Transformer结构进行性能优化。四位参赛队员进行了细致分工,包括基于神威处理器的SUMMA算法实现、cache局部性矩阵乘优化、LDM内存管理、数学库函数加速、PyTorch算子C语言并行化、多头机制特异性优化、核间RMA协同设计和向量化与指令级并行等。在保证模型精度和准确度的基础上,对多种训练规模的参数均进行了针对性优化。经过一系列的并行优化,单节点性能相比于原始版本,提升了数百至数千倍,同时在多节点上也有良好的可扩展性。
比赛现场
王子衡回顾参赛过程时表示,“比赛持续一个月时间,我们每天早晨8点到实验室,中午不休息,晚上11点回宿舍。在实验室的时候也要预设各种可能去找对策,这种高压、高强度的状态对精力消耗很大。在无锡参加决赛时,我们当时有3天每天只睡4个小时,连做梦都在调代码。好在之前假设的优化方案很多是有效的,在一定程度上缓解了我们的参赛压力。”
答辩环节
进入决赛的有20支队伍,分别来自清华大学、北京航空航天大学、浙江大学、中山大学、哈尔滨工业大学和中国科学技术大学等高校。多个参赛队伍同时以极高的强度在赛事服务器上进行操作,在比赛最后一天凌晨3点,服务器的数据库崩了,这直接导致无法调整代码,“那一刻真是惊心动魄啊!那时,我们的代码还存在正确性问题,当时几乎是崩溃的。当天上午9点半数据库才恢复,11点就需要提交代码,因为程序一次编译需要20分钟,因此,可以调整代码的次数不能多于3次,所幸代码最终还是按时调通了,我们也获得了第一名的好成绩。”王子衡说。
高性能计算团队负责人董小社教授说:“在紧张的研究生求学期间拿出3个月参加这种专业竞赛,乍看起来会影响到研究生正在着手的科研项目,但是回头细想,学生在这3个月时间内,其实是在进行高强度专业训练,他们带着目的和问题学习,极大调动了主观能动性,最终能快速提升专业技术水平。赛后,当他们回到科研项目上,明显感觉到他们对项目的理解有了质的提高。科研和竞赛完全是相辅相成的,正所谓‘磨刀不误砍柴工’,我们会继续鼓励和组织学生参加这类竞赛,进一步扩大西安交大高性能计算在国内的影响力。”
屡次获奖的背后:近20年的技术积累
高性能计算一直是西安交通大学计算机科学与技术学院的重点研究领域,CPC非常考验高校在这一领域的科研水平,正是由于西安交大计算机科学与技术学院长期以来对高性能计算方向的支持,以及团队多年来的科研积累和实践,才能获得今天优异的成绩。
2000年,董小社在科技部“863”项目支持下,开始建设“国家高性能计算中心(西安节点)”。高性能计算团队自成立以来的定位就是针对国家和社会对高性能计算环境、应用及人才的需求,依托国家高性能计算中心(西安),研究高性能计算机系统与软件、存储设备与大数据存储系统、人工智能、云计算与大数据使能技术。
为给人才培养和学科发展提供良好的环境支持,中心一直坚持免费的使用方式,校内外累计有90多个应用项目组,覆盖十多个学科,超过300个用户使用中心提供的高性能计算资源进行大规模仿真计算和算法研究。
团队还主动进行学科交叉,协助其它项目组完成并行程序优化和调试,并多次以学科交叉的方式申请国家项目,在中心的高性能计算环境和国家超级计算天津中心完成了项目的调试和验收。
为了让更多的学生了解高性能计算,团队面向研究生和本科生还开设了“并行程序设计”“高性能计算概论”“并行优化及程序设计”等课程,培养了一批热爱高性能计算的人才。
多年来坚持学科交叉、高性能计算人才培养和技术积累为今天取得的成绩奠定了坚实的基础。
2016年,“十三五”国家重点研发计划高性能计算专项启动,高性能计算团队在和能动学院张楚华教授多次合作的基础上,成功申请到“面向E级计算机的大型流体机械并行计算软件系统及示范”项目,张兴军教授负责课题“面向E级计算机的大型流体机械并行计算软件研制”。课题的一个核心指标是要在60万核的超算上研制大型流体机械并行计算软件,并且还要满足并行效率高于30%。经过调研,项目组将硬件平台选定为天河二号和神威太湖之光,针对不同的硬件架构,将项目组成员分成2组。经过2年的技术攻关,项目组以及掌握了神威太湖之光的硬件架构、编程模式以及优化方法。
在2019年3月份的一次例会上,伍卫国教授提到了第三届“神威杯”国产CPU并行应用挑战赛正在报名,这项竞赛的选定的平台正是在TOP500多次蝉联榜首的神威太湖之光,和项目组选定的科研平台“不谋而合”,项目组成员可以组队参加,一方面可以将科研和竞赛结合,另一方面也可以扩大西安交大高性能计算团队在国内的影响。在董小社、伍卫国、张兴军三位教授的全力支持下,建议由陈衡老师组队参赛。
2019年首次参赛时,队员全部是参与神威太湖之光优化组的硕士研究生,分别是研二的肖兮,研一的王子衡、董玉龙和王若尘,由优化组组长李靖波博士带队。项目组基于过去2年对竞赛平台硬件架构和优化调试技术的掌握,顺利完成初赛题目并进入决赛。决赛的前期准备一直很顺利,但是到了现场后,组委会给出的数据在运行时一直出现段错误,此时距离最后的提交时间不足24小时,陈衡建议先求稳,对使用的优化方法进行调整,确保给定的测试数据可以正常运行。队员们修改代码、编译、运行、调试,反复迭代,终于在上午8点拿到一个稳定的版本。当时,肖兮感慨地说:“如果再多给我们2天时间,我的这个算法能够调通的话,应该可以拿到前3名!”最终,他们取得了第6名的成绩,获得决赛三等奖,首次参赛获奖给了师生们很大的信心,大家都相信,项目组的技术水平一定可以确保项目的各项指标顺利完成。
正是由于在CPC上的优异表现,肖兮不仅实现了在硕士阶段计算机水平尤其是高性能计算技术质的飞跃,而且以优异的表现进入华为计算网络部门高性能计算团队工作。“如果没有加入高性能计算团队,如果没有参加张老师的重点研发项目,如果没有CPC参赛的经历,我的技术水平至少要比现在低一个档次。”肖兮说。
计算机科学与技术学院院长张兴军表示:“计算机系统结构是西安交大计算机学科的传统优势学科方向,于怡元、郑守淇、胡正家等先辈教授为此方向打下了坚实的基础,后面在钱德沛、董小社教授带领下,该方向得到了长足发展,特别是在高性能计算方面,团队主持、参与了国家多个重大、重点工程和科研项目,为国家高性能计算发展水平进步和产业发展作出了重要贡献。随着人工智能、大数据等新型应用的驱动发展,作为底层支撑的高性能计算的作用将更加凸显,团队将不断加强人才培养、学术研究和产学研合作力度,目前已经和华为公司在中国西部科技创新港就超算成立了联合创新研究中心,未来几年,团队将聚焦数据密集型超算和超算存储的研究与创新发力,力争使团队学术水平和贡献再上一个大台阶!”