8 月 13 日,来自山西的 24 岁小伙辛杰,代表中国团队夺得 Graph Challenge 2021 第五届图计算挑战赛全球冠军。
图 | 辛杰(来源:受访者)
这是辛杰所在的华中科技大学计算机学院图计算团队第二次参赛,这是中国团队首次在该赛事中获得冠军。
图 | 大赛官网的冠军得主公布页面(来源:Graph Challenge 官网)
华科大告诉 DeepTech,Graph Challenge 比赛是图计算领域最具影响力的国际赛事之一,由IEEE、麻省理工学院(MIT)和亚马逊联合举办。
往年比赛中,美国名校和名企基本包揽了冠军。
图 | 三家比赛主办方的logo(来源:Graph Challenge 官网)
今年比赛中,伊利诺伊大学厄巴纳-香槟分校、乔治华盛顿大学、马里兰大学、弗吉尼亚理工大学、劳伦斯利弗莫尔国家实验室、英伟达、赛灵思等名校和名企均有参赛。最终,华中科技大学团队、乔治华盛顿大学&马里兰大学联合队伍,两支队伍获得各自赛道的冠军。
事实上,华科团队在 2019 年首次参赛时,已经获得荣誉奖。而在本次参赛队伍中,辛杰和其同学叶先祺是华科参赛团队的主要成员,该校计算机科学与技术学院副教授郑龙担任指导老师。
图 | 参赛团队(来源:华科大)
图计算:AI 和大数据时代的核心挑战
作为一种数据结构,图(Graph)主要用于建模事物之间的关系,社交媒体、网页排序、科学计算等都能用图来表示。而快速处理是这些应用的核心诉求,但是图结构的不规则性会阻碍目标的实现。故此,AI 和大数据时代的核心挑战之一,正是如何做好图计算。
而该比赛,是让参赛团队在定的图应用上比拼处理速度。根据不同计算任务,比赛分为静态图匹配、动态图划分和稀疏神经网络推理三个赛道,并分别对应图计算的不同典型应用场景。
图 | 比赛设置(来源:Graph Challenge 官网)
由于稀疏神经网络推理是 AI 领域的典型应用场景,因此辛杰等人选了这一赛道,该赛道的任务是把稀疏神经网络的权重数据抽象成为图数据,然后执行相关推理任务,即为加速AI应用提供新方案。
自 2020 年底开始,辛杰和团队开始备赛,期间需要高性能计算平台。为保证顺利参赛,华科大相关实验室和项目组支援了 V100 GPU 多卡服务器,从而保证了稳定的开发环境。
图 | 参赛团队(来源:华科大)
参赛中,辛杰主要使用 Cuda、C++ 和 Python 三种编程语言。努力敲代码的同时,他也不忘停下来总结经验,几次开会总结后,辛杰找到了赛道应用的特点:即没有任何一种特定实现方法,能在任何一个数据集上都取得较好的性能提升。
根据该特点,他打算采用参数化方式来构造算子的实现空间,接着对实现空间进行搜索,从而获得对应数据集的最优实现方法。
在实现代码时,辛杰复用了图计算模块的思想,开发效率得以大大提高,并促使实验快速完成。最终,辛杰和团队顺利完赛,2021 年 7 月初他们提交了方案和结果,最终被主办方选为冠军。相比 2020 年同赛道冠军,此次华科团队在性能上约有 1.73-13.7 倍的提升。
参赛时越往后难度越大
辛杰告诉 DeepTech,每个赛题都会使用很多年,比赛核心是看谁在给定应用和数据集的赛题上跑得更快。因此如果是新赛题,由于还没有很多探索,所以有很大优化空间,这时参赛团队只需要使用一些通用的优化方法,就能取得不错的性能提升,但是越往后难度越大。
他和团队拿到赛题时已经是这个赛道的第三年,因此他们首先是学习 2020 年冠军团队的实现方案,结果发现他们已经做得足够好,感觉很难顺着这个思路继续做优化。而此前有相关经验的学长鼓励他这很正常,并建议他继续好好看论文、做实验、提想法。
备赛期间,辛杰作为硕士生还以第一作者的身份,在 HPEC(IEEE High Performance Extreme Computing Conference)会议上发表了题为《基于灵活 SpMM 优化空间探索的快速稀疏深度神经网络推理》(Fast Sparse Deep Neural Network Inference with Flexible SpMM Optimization Space Exploration)的论文。
图 | 相关论文(来源:华中科大)
在论文中,辛杰提出了名为 SpMM 的稀疏感知算法。他表示,SpMM 是稀疏矩阵乘以稠密矩阵的缩写,该算法有多种不同的代码实现方案。但是由于稀疏矩阵的不规则性,没有一种特定的实现方案可在任意的稀疏矩阵上,都产生最好的性能结果。
基于这一观察,他和团队提出了上述算法,通过在所有 SpMM 实现方案中进行搜索,选择更合适的一种方法。该方法分三步:
第一步,通过用循环变化原语,将 SpMM 实现方案参数化,从而用参数化方法定义实现空间,由于空间很大,因此搜索代价比较高,这时就得引入第二步;
第二步,考虑到GPU架构的特点,需要把不适合在 GPU 上执行的 SpMM 实现,从定义的实现空间中进行裁剪,而空间中剩下来的SpMM实现,则是在 GPU 上性能表现好的;
第三步,通过设计简单的搜索算法,将稀疏矩阵的行列分布特性作为搜索的参数,计算它在每种SpMM实现上的代价,从中选择代价较小的作为最终的 SpMM 实现方案。
可为加速很多 AI 网络模型提供新的思路
概括来说,该论文主要研究如何在有限的资源中,让 AI 网络模型在GPU上跑得更快。其采用的方法是把 AI 网络模型的核心算子进行实现空间搜索,从而得到最优的实现方案。辛杰表示,这是一个偏底层和偏通用的实现方法,能为大量 AI 网络模型提供性能优化思路。
据悉,通过对比赛实验结果的分析,该方法可实现每秒 11.8-55.6 TTEPS 的推理吞吐量,且能随着网络层的增加而增加。比赛数据集具有随着推理的进行,相关矩阵越来越稀疏的特征,因此他们的性能也就越来越好。
他告诉 DeepTech:“此次成果主要是性能上的提升。在参赛的数据集上,我们的方法能为每种稀疏矩阵选择到较优的实现方案,最大化地利用了硬件的计算能力和存储能力。”
由于在底层稀疏计算领域的技术研发,需要有较高的人力成本,因此仍处于学术研究阶段,很少进入实际产品应用中。当前,在面对相似问题时,业界由于资金相对充足,一旦计算资源不够,通常选择购买更多机器。假如完成一个任务,企业需要购买十台机器完成,而使用此方法后可能只需要五台机器即可。
(来源:受访者)
谈及和往年冠军提出的方法相比的优势,辛杰表示首先是他们的性能表现更好,这也是夺冠的主要原因。其次,本次方法具备更好的扩展性,更容易推广到真实的应用场景中。
从扩展性上来讲,往年冠军使用了 GPU 上的常用性能优化手段,通过对核心操作 SpMM 进行固定的计算模式和代码上的调整来提升性能。但他们的方法往往只能在某一类稀疏矩阵上取得较好的性能,一旦数据集发生变化,性能就会不太理想。
由于稀疏矩阵结构不规则性,因此稀疏矩阵的数据分布包含很多类型,而随着神经网络的发展,这种类型之间的区别会越来越多。此次辛杰的方案能为不同类型的稀疏矩阵选择不同的代码执行方案,从而能更好地应对不同的稀疏矩阵类型。
从技术路线上来讲,这种数据相关性的优化,是解决稀疏性相关问题行之有效的方案,不论是图、还是稀疏神经网络上的操作,都可用这套思路来解决。
此次冠军一经揭晓,有观点认为“华中科技大学团队此次夺冠,标志着我国在图计算领域的研发水平位于国际前列”。辛杰指出,在国际上中国图计算水平确实处于较高水平,但不能因为获得这样一个比赛的冠军,就说“夺冠标志着处于国际前列”。
因为比赛场景和实际生产生活场景有很大区别,比赛中更多的是要结合比赛特定的数据集、算法进行优化,而实际上生产场景会更加复杂,需要付出比比赛更多的努力和研究。比赛中使用的方法除了自己提出的一些新办法外也结合了图计算领域的很多成果。
未来,辛杰将继续围绕参赛成果做优化,尽管本次顺利夺冠,但其实只解决了稀疏计算问题中的一个算子,而还有更多算子等着他去探讨。
事实上,图计算领域的研究主要是做计算机底层的搭建,尽管电脑和手机上的应用如此至多,但其底层技术,正是靠开发者去把应用底层做得更稳固和高效,这带给终端用户的直接好处是,在使用一些对处理器要求较高的应用的时候,可以感觉到应用跑得更快。
-End-
全部评论