研究人员开发了更快的网络分析以增强推荐算法和Internet搜索
![](http://www.yixuew.cn/uploadfile/2021/05/20210518270714.jpg)
麻省理工学院的研究人员开发了可在各种计算硬件(包括CPU和GPU)上更有效地运行图形应用程序的软件。
图-显示对象之间关系的数据结构-具有高度的通用性。很难想象有一张图表描述了社交媒体网络的联系网络。但是,图表还可以在程序中用作内容推荐(在Netflix上接下来要看什么?)和导航(到海滩的最快路线是什么)的含义。正如Ajay Brahmakshatriya总结的那样:“图形基本上无处不在。”
Brahmakshatriya开发了软件,可以在更广泛的计算机硬件上更有效地运行图形应用程序。该软件扩展了GraphIt(一种最先进的图形编程语言),使其可以在图形处理单元(GPU)上运行,图形处理单元(GPU)可以并行处理许多数据流。这一进步可能会加速图形分析,特别是对于受益于GPU并行性的应用程序,例如推荐算法。
麻省理工学院电气工程与计算机科学系和计算机科学与人工智能实验室的博士生Brahmakshatriya将在本月的代码生成和优化国际研讨会上介绍这项工作。合著者包括Brahmakshatriya的顾问,Saman Amarasinghe教授以及Douglas T. Ross Career软件技术开发助理教授Julian Shun,博士后Changwan Hong,最近的MIT博士学位学生Yunyun Zhang Zhang博士20岁(现与Google一起)和Adobe Research的Shoaib Kamil。
程序员编写代码时,不会直接与计算机硬件对话。硬件本身以二进制(1和0)运行,而编码器则使用由单词和符号组成的结构化“高级”语言进行编写。将该高级语言转换为硬件可读的二进制文件,需要使用称为编译器的程序。Brahmakshatriya说:“编译器将代码转换为可以在硬件上运行的格式。”GraphIt是一种专门为图形分析而设计的编译器。
研究人员于2018年开发了GraphIt,以优化基于图的算法的性能,而不管图的大小和形状如何。GraphIt不仅允许用户输入算法,而且还可以计划该算法在硬件上的运行方式。“用户可以为日程安排提供不同的选择,直到他们找出最适合他们的时间为止,” Brahmakshatriya说。“ GraphIt会为每个应用程序量身定制非常专业的代码,以使其尽可能高效地运行。”
许多初创公司和成熟的技术公司都采用了GraphIt来帮助其开发图形应用程序。但是Brahmakshatriya说GraphIt的第一次迭代有一个缺点:它仅在中央处理器或CPU(典型笔记本电脑中的处理器类型)上运行。
Brahmakshatriya说:“某些算法在很大程度上是并行的,这意味着它们可以更好地利用具有10,000个内核的GPU之类的硬件来执行。”他指出,某些类型的图分析(包括推荐算法)需要高度的并行性。因此Brahmakshatriya扩展了GraphIt,以使图形分析在GPU上蓬勃发展。
Brahmakshatriya的团队保留了GraphIt用户输入算法的方式,但将调度组件修改为适用于更广泛的硬件。“将GraphIt扩展到GPU的主要设计决策是保持算法表示完全相同,” Brahmakshatriya说。“相反,我们添加了新的调度语言。因此,用户可以保持与[针对CPU]之前编写的算法相同的算法,只需更改调度输入即可获得GPU代码。”
这项针对GPU的全新优化调度功能增强了要求高度并行性的图形算法-包括可同时筛选数百万个网站的推荐算法或互联网搜索功能。为了确认GraphIt的新扩展的有效性,该团队进行了90次实验,将GraphIt的运行时与GPU上其他最新的图形编译器进行了对比。实验包括从道路网络到社交网络的一系列算法和图形类型。GraphIt在90个案例中有65个运行最快,在其余的试验中均落后于领先算法,证明了它的速度和多功能性。
康奈尔大学计算机科学家阿德里安·桑普森(Adrian Sampson)说,GraphIt“通过同时获得性能和生产率来促进该领域的发展”,但他并未参与这项研究。“进行图分析的传统方法有一个或另一个:您可以编写具有中等性能的简单算法,也可以聘请专家来编写极其快速的实现-但是这种性能很少为凡人所能获得。GraphIt扩展是让普通人编写高级抽象算法并从GPU中获得专家级性能的关键。”
桑普森补充说,这一进步在快速变化的领域中可能特别有用:“基因组学是令人兴奋的领域,因为基因组学的发展如此之快,以至于高性能的专家实现无法跟上变化的速度。我很高兴生物信息学从业人员接触到GraphIt,以扩展他们有能力进行的基因组分析。”
Brahmakshatriya说,新的GraphIt扩展在图形分析方面提供了有意义的进步,使用户可以轻松地以最先进的性能在CPU和GPU之间切换。“如今的领域是钉子和钉子的竞争。每天都有新的框架出现。”他说。但他强调,即使进行轻微的优化也值得付出。公司每天花费数百万美元来运行图形算法。即使您将其运行速度提高了5%,您也可以节省数千美元。
参考:Ajay Brahmakshatriya,张云明,Hong Changwan Hong,Shoaib Kamil,Julian Shun和Saman Amarasinghe接受了IEEE.PDF,“使用GraphIt编译GPU的图形应用程序”,接受。PDF
这项研究部分由国家科学基金会,美国能源部,应用驱动架构中心和国防高级研究计划局资助。