CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了

来源:PaperWeekly

在深度学习与神经网络领域,研究人员通常离不开 GPU。得益于 GPU 极高内存带宽和较多核心数,研究人员可以更快地获得模型训练的结果。与此同时,CPU 受限于自身较少的核心数,计算运行需要较长的时间,因而不适用于深度学习模型以及神经网络的训练。

但近日,莱斯大学、蚂蚁集团和英特尔等机构的研究者发表了一篇论文,表明了在消费级 CPU 上运行的 AI 软件,其训练深度神经网络的速度是 GPU 的 15 倍。这篇论文已被 MLSys 2021 会议接收。
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
论文链接:https://proceedings.mlsys.org/paper/2021/file/3636638817772e42b59d74cff571fbb3-Paper.pdf
论文通讯作者、莱斯大学布朗工程学院的计算机科学助理教授 Anshumali Shrivastava 表示:「训练成本是 AI 发展的主要瓶颈,一些公司每周就要花费数百万美元来训练和微调 AI 工作负载。」他们的这项研究旨在解决 AI 发展中的训练成本瓶颈。
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
Anshumali Shrivastava
研究动机及进展
深度神经网络(DNN)是一种强大的人工智能,在某些任务上超越了人类。DNN 训练通常是一系列的矩阵乘法运算,是 GPU 理想的工作负载,速度大约是 CPU 的 3 倍。
如今,整个行业都专注于改进并实现更快的矩阵乘法运算。研究人员也都在寻找专门的硬件和架构来推动矩阵乘法,他们甚至在讨论用于特定深度学习的专用硬件 - 软件堆栈。
Shrivastava 领导的实验室在 2019 年做到了这一点,将 DNN 训练转换为可以用哈希表解决的搜索问题。他们设计的亚线性深度学习引擎(sub-linear deep learning engine, SLIDE)是专门为运行在消费级 CPU 上而设计的,Shrivastava 和英特尔的合作伙伴在 MLSys 2020 会议上就公布了该技术。他们表示,该技术可以超越基于 GPU 的训练。
在 MLSys 2021 大会上,研究者探讨了在现代 CPU 中,使用矢量化和内存优化加速器是否可以提高 SLIDE 的性能。
论文一作、莱斯大学 ML 博士生 Shabnam Daghaghi 表示:「基于哈希表的加速已经超越了 GPU。我们利用这些创新进一步推动 SLIDE,结果表明即使不专注于矩阵运算,也可以利用 CPU 的能力,并且训练 AI 模型的速度是性能最佳专用 GPU 的 4 至 15 倍。」
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
Shabnam Daghaghi
此外,论文二作、莱斯大学计算机科学与数学本科生 Nicholas Meisburger 认为,CPU 仍然是计算领域最普遍的硬件,其对 AI 的贡献无可估量。
技术细节
在本论文中,该研究重新了解了在两个现代 Intel CPU 上的 SLIDE 系统,了解 CPU 在训练大型深度学习模型方面的真正潜力。该研究允许 SLIDE 利用现代 CPU 中的矢量化、量化和一些内存优化。与未优化的 SLIDE 相比,在相同的硬件上,该研究的优化工作带来了 2-7 倍的训练时间加速。
SLIDE 的工作流程包括:初始化、前向-反向传播和哈希表更新。下图 1 为前向-反向传播工作流程图:
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
前向和后向传播示意图
该研究专注于大规模评估,其中所需的神经网络拥有数亿个参数。在两台 Intel  CPU 上比较了优化的 SLIDE,分别是 Cooper Laker 服务器(CPX)和 Cascade Lake 服务器(CLX),并与以下以下 5 个基准进行了对比:
  • 1)V100 GPU 上的 full-softmax tensorflow 实现;
  • 2) CPX 上的 full-softmax tensorflow 实现;
  • 3)CLX 上的 full-softmax tensorflow 实现;
  • 4)CPX 上的 Naive SLIDE;
  • 5)CLX 上的 Naive SLIDE。
其中,CPX 是英特尔第三代至强可扩展处理器,支持基于 AVX512 的 BF16 指令。CLX 版本更老,不支持 BF16 指令。
研究者在三个真实的公共数据集上评估了框架和其他基准。Amazon670K 是用于推荐系统的 Kaggle 数据集;WikiLSH-325K 数据集和 Text8 是 NLP 数据集。详细统计数据见下表 1:
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
对于 Amazon-670K 和 WikiLSH-325K,研究者使用了一个标准的全连接神经网络,隐藏层大小为 128,其中输入和输出都是多个热编码向量。对于 Text8,该研究使用标准 word2vec 语言模型,隐藏层大小为 200,其中输入和输出分别是一个热编码向量和多个热编码向量。
下图 6 第一行代表所有数据集的时间收敛图,结果显示了该研究提出的优化 SLIDE 在 CPX 和 CLX(深绿色和浅绿色)上训练时间优于其他基准 。图 6 的底部行显示了所有数据集的柱状图。
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
下表 2 给出了三个数据集上的详细数值结果:
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
下表 3 中,研究者展示了 BF16 指令对每个 epoch 平均训练时间的影响。结果表明,在 Amazon-670K 和 WikiLSH325K 上,激活和权重中使用 BF16 指令分别将性能提升了 1.28 倍和 1.39 倍。但是,在 Text8 上使用 BF16 没有产生影响。
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
下表 4 展示了有无 AVX-512 时,优化 SLIDE 在三个数据集上的每个 epoch 平均训练时间对比。结果表明,AVX-512 的矢量化将平均训练时间减少了 1.2 倍。
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
参考链接:
https://techxplore.com/news/2021-04-rice-intel-optimize-ai-commodity.html
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
2021-04-23 原文

CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了的相关文章

控笔控什么?怎么控?成人怎样训练效果快?最佳效果是什么?

控笔控什么?怎么控?成人怎样训练效果快?最佳效果是什么?

【如何让记忆快十倍?】如何快速轻松地记单词?

展开

点赞训练场上的“十小”活动

"一连不愧是科学练兵先行连,官兵训练热情高涨,你追我赶.互学互帮,人人都是参与者,个个都像'小老虎'."陆军第七十五集团军某旅"红色染缸"连训前小动员.心理小疏 ...

颈肩疼痛难忍,一个方法第二天就好!比膏药快十倍!

随着大家现在生活习惯的改变,越来越多的人在日常生活之中会有伏案工作的情形,所以大家在生活之中,多少都经历过颈肩部的疼痛. 当肩膀酸痛时,许多人会习惯性的按摩肩膀或脖子,这样的确会有瞬间轻松的感觉,但这 ...

用王牌训练方法训练医生(二十九)

王牌训练方法 是什么使最优秀的飞行员如此优秀 有一个训练计划,模拟实战,不断练习,持续反馈 刻意练习的核心:准确判断出最杰出人做了什么,让他们与众不同 放射科医生训练的困境 研究对象是50万张乳房X射 ...

快十八岁了我立志做个爱学习爱读书的青年

快十八岁了我立志做个爱学习爱读书的青年 原创 马上要进入5G时代了,这个时代变化太快了,必须坚持终生学习才能克服本领不足.本领落后和本领恐慌,才能与时俱进.跟上时代的步伐,不断适应发展变化了的新情况. ...

洋葱好伟大:补骨髓比钙快十倍不止,补骨第一名!(转)

洋葱是极少数含有前列腺素A的蔬菜,前列腺素A是一种较强的血管扩张剂,能够软化血管,降低血液黏稠度,增加冠状动脉血流量,促进引起血压升高的钠盐等物质的排泄,因此既能调节血脂,还有降压和预防血栓形成的作用 ...

小伙发明四方刀架双刀车削,加工效率快十倍,老板立即把他升位车间组长

这个算是数控加工中的一个小发明,小伙利用到了四方刀架空间资源,实现了双刀切削,提高了效率,十几万机床也可以做到了上百万机床的功能. 机械微学 专业分享机械知识,传播唯美视觉,学习休闲两不误,跟着机械君 ...

训练神经网络的方法分享-Andrej Karpathy

原作者:Andrej Karpathy 由深度学习与NLP翻译 几周前,我发布了一条关于"最常见的神经网络错误"的推文,列出了一些与训练神经网络相关的常见问题.这条推文获得了比我预 ...