研究人员为计算机硬件开发了更快的网络分析

麻省理工学院(MIT)的研究人员开发了一种软件,可以在一系列计算硬件(包括cpu和gpu)上更有效地运行图形应用程序。

通过丹尼尔·阿克曼 2021年2月26日
图片由Brett Sayles提供

图表是非常通用的。很容易想象一张描绘社交媒体网络连接网络的图表。图表也用于各种程序,如内容推荐和导航。正如麻省理工学院电气工程与计算机科学系以及计算机科学与人工智能实验室的博士生Ajay Brahmakshatriya所总结的那样:“图形基本上无处不在。”

Brahmakshatriya开发了软件,可以在更广泛的计算机硬件上更有效地运行图形应用程序。该软件扩展了GraphIt,一种最先进的图形编程语言,可以在图形处理单元(gpu)上运行,gpu是并行处理许多数据流的硬件。这一进步可以加速图形分析,特别是对于受益于GPU并行性的应用程序,比如推荐算法。

当程序员编写代码时,他们并不直接与计算机硬件对话。硬件本身以二进制(1和0)运行,而编码器用结构化的、由单词和符号组成的“高级”语言编写。将这种高级语言转换为硬件可读的二进制需要称为编译器的程序。“编译器将代码转换为可以在硬件上运行的格式,”Brahmakshatriya说。GraphIt就是这样一个专门为图形分析设计的编译器。

研究人员在2018年开发了GraphIt,以优化基于图的算法的性能,而不考虑图的大小和形状。GraphIt不仅允许用户输入算法,还允许用户调度算法在硬件上的运行方式。“用户可以为日程安排提供不同的选择,直到他们找到最适合自己的,”Brahmakshatriya说。GraphIt为每个应用程序生成非常专门的代码,以尽可能高效地运行。”

许多初创公司和成熟的科技公司都采用了GraphIt来帮助他们开发图形应用程序。Brahmakshatriya说,GraphIt的第一次迭代有一个缺点:它只能在中央处理器或cpu上运行,也就是典型笔记本电脑的处理器类型。

“有些算法是大规模并行的,”Brahmakshatriya说,“这意味着它们可以更好地利用具有10,000个内核的GPU等硬件来执行。”他指出,一些类型的图分析,包括推荐算法,需要高度的并行性。因此,Brahmakshatriya扩展了GraphIt,使图形分析能够在gpu上蓬勃发展。

Brahmakshatriya的团队保留了GraphIt用户输入算法的方式,但调整了调度组件以适应更广泛的硬件阵列。Brahmakshatriya说:“我们将GraphIt扩展到gpu的主要设计决策是保持算法表示完全相同。”“相反,我们添加了一种新的调度语言。所以,用户可以保留之前为cpu编写的相同算法,只需要改变调度输入就可以获得GPU代码。”

这种新的、优化的gpu调度为需要高并行性的图形算法提供了促进,包括同时筛选数百万个网站的推荐算法或互联网搜索功能。为了确认GraphIt新扩展的有效性,该团队进行了90次实验,将GraphIt的运行时与gpu上其他最先进的图形编译器进行了对比。实验包括一系列算法和图类型,从道路网络到社交网络。在90个案例中,GraphIt在65个案例中运行得最快,在其余的试验中也紧跟领先算法,证明了它的速度和多功能性。

没有参与这项研究的康奈尔大学(Cornell University)计算机科学家阿德里安·桑普森(Adrian Sampson)说,GraphIt“通过同时获得性能和生产力,推动了该领域的发展。”“做图分析的传统方法只有一个:要么你可以写一个性能一般的简单算法,要么你可以雇佣一个专家来写一个非常快的实现——但这种性能对于普通人来说很少能达到。GraphIt扩展是让普通人编写高级抽象算法的关键,同时还能让gpu获得专家级性能。”

桑普森补充说,这一进步在快速变化的领域尤其有用:“基因组学是一个令人兴奋的领域,该领域的算法发展得如此之快,以至于高性能的专家实现无法跟上变化的速度。我很高兴生物信息学从业者能够接触到GraphIt,扩展他们能够进行的基因组分析类型。”

Brahmakshatriya表示,新的GraphIt扩展在图形分析方面提供了有意义的进步,使用户能够轻松地在cpu和gpu之间使用最先进的性能。“如今这个领域是激烈的竞争。每天都有新的框架问世,”他说。但他强调,即使是轻微优化的回报也是值得的。“公司每天花费数百万美元来运行图算法。即使你让它的运行速度提高了5%,你也可以节省数千美元。”

这项研究部分由美国国家科学基金会、美国能源部、应用驱动架构中心和国防高级研究计划局资助。

-由Chris Vavra编辑,网页内容经理,控制工程, CFE媒体与技术,cvavra@cfemedia.com


作者简介:Daniel Ackerman,麻省理工学院新闻办公室