首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CPU上运算比GPU还快?美国莱斯大学最新研究克服硬件障碍

美国莱斯大学的计算机科学家们发明了一种在CPU上比GPU更快地训练深度神经网络的算法SLIDE,克服了人工智能产业迅速发展的一个主要障碍,证明了在不依赖于图形处理单元(GPU)等专业级加速硬件的情况下,也能够实现对深度学习技术的加速。

根据外媒报道,莱斯大学的计算机科学家们已经克服了人工智能产业迅速发展的一个主要障碍,他们证明了在不依赖于图形处理单元(GPU)等专业级加速硬件的情况下,也能够实现对深度学习技术的加速。这个名为SLIDE的算法是第一个在CPU上比GPU更快地训练深度神经网络的算法。

在奥斯汀召开的2020机器学习系统会议MLSys上,来自莱斯大学的计算机科学家们,在来自英特尔公司的合作伙伴的支持下,于3月2日在奥斯汀会议中心展示了他们的最新研究成果。

当下,为了实现深度学习,许多公司正大力投资于图形处理单元(GPU)和其他专业级硬件。深度学习是一种强大的人工智能,如今亚马逊Alexa和苹果Siri等智能助理、面部识别、产品推荐系统和其他技术都有深度学习在背后作为支撑。深度学习炙手可热的程度可以举一例说明,作为一手打造该行业金字招牌“特斯拉V100 Tensor Core GPU”芯片的制造商,Nvidia公司最近的财务报告显示,其2019第四季度收入同比增长了41%。

而莱斯大学的研究人员创造了一种可替代GPU的节省成本的算法,称为“次线性深度学习引擎”(sub-linear deep learning engine,简称SLIDE),这种算法只需使用一般通用的中央处理器(CPU),而无需专业级的加速硬件。

“我们的测试表明,SLIDE是第一个基于CPU实现的深度学习智能算法,它的性能可以超越那些依照产业规模的建议采用大型全连接架构使用GPU硬件加速来实现数据集的方法”,Anshumali Shrivastava这样说。这位莱斯大学布朗工程学院的助理教授与研究生Beidi ChenTharun Medini一起开发了该SLIDE算法。

SLIDE不需要依赖于GPU,因为这种算法从根本上采用了一种完全不同的深度学习方法。深度神经网络训练技术标准的“反向传播”算法需要矩阵乘法,如此繁重的计算量正是适合GPU发挥性能的理想场所。然而,通过SLIDE算法,Shrivastava、Chen和Medini把神经网络训练转变成为一个可以用哈希表来解决的搜索问题。

与反向传播训练技术相比,这种SLIDE算法可以从根本上减少大量的计算开销。Shrivastava举例说,如今诸如亚马逊、谷歌以及其他公司使用GPU打造的基于云的深度学习服务的顶级平台,一般会使用8块“特斯拉V100”芯片,其费用约为10万美元。

莱斯大学计算机科学研究生Beidi Chen和Tharun Medini参与开发了SLIDE,这是一种无需依赖图形处理单元对深度神经网络进行训练的算法。(图片来源:Jeff Fitlow/莱斯大学)

“我们有一个在实验室运行的测试用例,它完全能承载一块V100芯片的工作负荷,也即是一个适用于GPU内存的,运行在大型全连接网络中有超过1亿个参数的计算量”,Shrivastava说,“我们用最先进的谷歌的TensorFlow软件包来训练该算法,它只花了3个半小时就完成了训练。”

“我们随后证明,我们的新算法甚至可以在一小时内完成该训练,而且并不是运行在GPU上,而是运行在44核的xeon-class CPU上,” Shrivastava说。

深度学习网络的灵感来自生物学,其核心特征是人工神经元,这些神经元是一小段可以学习并执行特定的任务计算机代码。一个深度学习网络可能包含数百万甚至数十亿这种人工神经元,只要通过对海量数据的学习,这些神经元共同工作就有可能学习并做出与人类水平相当的专家决策。例如,如果一个深度神经网络被训练来识别照片中的物体,当识别一张猫的照片或是识别一辆校车时,它将使用不同的神经元来进行学习。

“你不需要对每个用例的所有神经元都进行训练,” Medini解释说,“我们是这样想的,‘如果我们只去挑选出相关的神经元,那这就变成了一个搜索问题。’ 因此,从算法上讲,我们的想法就是使用局部敏感哈希算法来避免矩阵乘法的复杂性。”

哈希算法是20世纪90年代为互联网搜索发明的一种数据索引方法。它使用数字方法将大量信息,例如整个网站所有网页或一本书的所有章节,编码为一串称为哈希散列的数字。哈希表就是记录这些哈希散列值并可以实现快速搜索的列表。

“在TensorFlow或PyTorch上实现我们的算法是毫无意义的,因为这些软件执行的第一件事就是不管三七二十一先把你正在做的事情转换成一个矩阵乘法问题,” Chen说。“而这正是我们的算法想要避免的。所以我们是从零开始写我们自己的C++代码的。”

Shrivastava说,SLIDE相对于反向传播的最大优势在于它采用了数据并行的方式。

“我的意思是,通过数据并行,如果我想要训练两个数据实例,比方说一个是一只猫的形象,另一个是公共汽车,他们可能会激活不同的神经元,该SLIDE算法可以对这两个实例分别独立地进行更新或训练,” 他说,“这就大大地提高了CPU并行性的利用率。”

“另一方面,与GPU相比,我们需要更大的存储空间,” 他说,“在主存储器中有一个缓存层次结构,如果你使用时不够小心,可能会遇到一个叫做内存颠簸(cache thrashing)的问题,那样就会发生大量缺页中断。”

Shrivastava说,他的团队第一次使用SLIDE进行实验时,就发生了严重的内存颠簸,但他们的训练时间仍然与GPU的训练时间相当,甚至更快。于是,他、Chen和Medini于2019年3月在arXiv上发布了初步实验结果,并将他们的代码上传到GitHub。几周后,英特尔公司主动联系了他们。

“来自英特尔的合作伙伴注意到了我们实验中的缓存问题,” 他说,“他们告诉我们,他们可以与我们进行合作,让这个算法更快地完成训练,之后的事实证明他们是正确的。在他们的帮助下,我们的实验性能又提高了约50%。”

Shrivastava说,SLIDE还远远未达到其最大潜力。

“我们只能算是初尝甜头而已,” 他说,“我们还可以做很多事情来对这个算法进行优化。例如,我们还没有使用矢量化,也没有在CPU中使用内置的加速器,比如Intel Deep Learning Boost技术。我们还有很多其他的技巧可以让这个算法变得更快。”

Shrivastava说,SLIDE的重要性在于,它证明了还有其他方式来实现深度学习。

“我们想要传达的整个信息是,‘我们不要被矩阵乘法和GPU内存这两个瓶颈所限制住,’ ” Chen说,“我们的算法可能是第一个击败GPU的算法,但我希望它不是最后一个。这个领域需要新的想法,而这正是这次MLSys机器学习系统会议的重要意义所在。”

该算法的其他共同作者包括James Farwell、Sameh Gobriel和Charlie Tai,他们都是来自英特尔实验室的成员。

该研究还得到了美国国家科学基金会(NSF-1652131, NSF-BIGDATA 1838177)、空军科研办公室(FA9550-18-1-0152)、亚马逊和海军研究办公室的支持。

相关链接和资源:

MLSys机器学习系统会议文件: https://www.cs.rice.edu/~as143/Papers/SLIDE_MLSys.pdf

作者介绍:

Jade Boyd,莱斯大学公共事务办公室的科学编辑和新闻与媒体关系副主任。

英文原文:

Deep learning rethink overcomes major obstacle in AI industry

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/MrtS09uWOUsaqFIQpfWm
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券