- 主题:CPU比GPU训练神经网络快十几倍zz
本文转载自头条号:机器之心Pro
机器之心报道
编辑:维度、陈萍
神经网络训练通常是 GPU 大显身手的领域,然而莱斯大学和英特尔等机构对 GPU 的地
位发起了挑战。
在深度学习与神经网络领域,研究人员通常离不开 GPU。得益于 GPU 极高内存带宽和较
多核心数,研究人员可以更快地获得模型训练的结果。与此同时,CPU 受限于自身较少
的核心数,计算运行需要较长的时间,因而不适用于深度学习模型以及神经网络的训练
。
但近日,莱斯大学、蚂蚁集团和英特尔等机构的研究者发表了一篇论文,表明了在消费
级 CPU 上运行的 AI 软件,其训练深度神经网络的速度是 GPU 的 15 倍。这篇论文已
被 MLSys 2021 会议接收。
论文链接:
https://proceedings.mlsys.org/paper/2021/file/3636638817772e42b59d74cff571fb
b3-Paper.pdf
论文通讯作者、莱斯大学布朗工程学院的计算机科学助理教授 Anshumali Shrivastava
表示:「训练成本是 AI 发展的主要瓶颈,一些公司每周就要花费数百万美元来训练和
微调 AI 工作负载。」他们的这项研究旨在解决 AI 发展中的训练成本瓶颈。
CPU比GPU训练神经网络快十几倍,英特尔:别用矩阵运算了
Anshumali Shrivastava。
研究动机及进展
深度神经网络(DNN)是一种强大的人工智能,在某些任务上超越了人类。DNN 训练通常
是一系列的矩阵乘法运算,是 GPU 理想的工作负载,速度大约是 CPU 的 3 倍。
如今,整个行业都专注于改进并实现更快的矩阵乘法运算。研究人员也都在寻找专门的
硬件和架构来推动矩阵乘法,他们甚至在讨论用于特定深度学习的专用硬件 - 软件堆栈
。
Shrivastava 领导的实验室在 2019 年做到了这一点,将 DNN 训练转换为可以用哈希表
解决的搜索问题。他们设计的亚线性深度学习引擎(sub-linear deep learning engin
e, 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,该研究使用标准 w
ord2vec 语言模型,隐藏层大小为 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
--
FROM 112.47.160.*
【 在 zszqzzzf (炼狱天使——反者道之动) 的大作中提到: 】
: 本文转载自头条号:机器之心Pro
: 机器之心报道
: 编辑:维度、陈萍
: ...................
时光之魂
不用矩阵运算那也就是说 解线性方程的的方式不用线性代数的方式来做 而是用矢量 模
运算 来代替 具体什么原理也没说… 但本质上深度学习的数学模型不会变 只是解题的
方法变了.
04-09 22:01
回复
9
wyiwyiiyw
比如当年研究出对数?
04-10 10:44
回复
赞
lzparklzpark
用自创的引擎把矩阵运算转化成其它算法,再针对CPU指令集优化,速度是GPU的4-15倍
,如果属实,含金量等同于量子计算机的算法发明,可以获得诺贝尔级别的数学大奖了
。可信度不高,应该还有其它说道,毕竟这行业高手如云,实践一下就露馅了。
04-09 23:13
回复
1
daibuTom
印度人的脸孔,印度人才辈出
04-10 00:15
回复
1
晓卒子赛如车
印度人搞软件很会挖坑埋坑
04-10 06:52
回复
赞
AtlasSix
这种印度人都被美国收了,以后小孩都是印裔美国人,和印度人没关系了
04-10 03:00
回复
赞
redex1980
mark,学习一下
04-10 11:13
回复
赞
sexfirmsoul
哈希查表gpu也强吧,那么多cuda核
04-09 17:33
回复
7
THEBOY1998
还在卖力兜售自己的AVX512啊?
04-09 17:14
回复
7
遨游小蚯蚓
用显卡不比它好?
04-09 21:54
回复
赞
baseshow
性能提升几杯,本来就是好东西,你看运动碰撞模拟,速度比没avx512的快几倍
04-09 17:54
回复
1
勤奋的灵机一动
完全看不懂。在你们自己的圈子里讨论去吧!
04-10 09:19
回复
赞
星靖靖080
nvidia股票营生下跌
04-09 18:48
回复
4
六百兆
所以这关矩阵啥事?
04-09 17:58
回复
赞
丘咏8R
没有cuda很多代码没有办法移植
04-10 00:58
回复
2
smilexu1982
怎么用?
04-09 20:22
回复
赞
jackiekie
能挖矿??、
04-10 22:53
回复
赞
在沙漠捕鱼的小智
好家伙
04-09 17:06
回复
1
点点滴滴人心姐
04-10 01:40
回复
赞
高信科工观学研分系顶设者
04-10 04:17
回复
赞
我是安特
哦。
04-10 06:37
回复
赞
没有更多啦
--
FROM 112.47.160.*
然后AMD大卖?
【 在 zszqzzzf (炼狱天使——反者道之动) 的大作中提到: 】
: 本文转载自头条号:机器之心Pro
: 机器之心报道
: 编辑:维度、陈萍
: ...................
--
FROM 123.115.77.*
猜测是滤掉了一些对精度影响不大但占比比较多的操作,计算量小时间就省下来了。如果真是这样,直接吹cpu比gpu训练快是扯犊子。。
【 在 zszqzzzf 的大作中提到: 】
: 本文转载自头条号:机器之心Pro
:
: 机器之心报道
:
: 编辑:维度、陈萍
:
: 神经网络训练通常是 GPU 大显身手的领域,然而莱斯大学和英特尔等机构对 GPU 的地
: 位发起了挑战。
:
: 在深度学习与神经网络领域,研究人员通常离不开 GPU。得益
: ..................
发自「今日水木 on Redmi Note 7」
--
FROM 116.228.77.*
作者的意思是:反向传播这种基于矩阵乘法O(N^3)的算法,在模型日益膨胀的当下如果不反思一下就太说不过去了。于是搬出了局部敏感哈希。
【 在 meizhi (meizhi) 的大作中提到: 】
: 猜测是滤掉了一些对精度影响不大但占比比较多的操作,计算量小时间就省下来了。如果真是这样,直接吹cpu比gpu训练快是扯犊子。。
: 发自「今日水木 on Redmi Note 7」
--
修改:tgfbeta FROM 60.27.94.*
FROM 60.27.94.*
那标题是太唬人了。。如果哈希在gpu上好使,还是会吊打cpu。
【 在 tgfbeta 的大作中提到: 】
: 作者的意思是:反向传播这种基于矩阵乘法O(N^3)的算法,在模型日益膨胀的当下如果不反思一下就太说不过去了。于是搬出了局部敏感哈希。
: --
发自「今日水木 on Redmi Note 7」
--
FROM 101.84.109.*
不明角力,坐等发酵。
【 在 tgfbeta (右旋肉碱) 的大作中提到: 】
: 作者的意思是:反向传播这种基于矩阵乘法O(N^3)的算法,在模型日益膨胀的当下如果不反思一下就太说不过去了。于是搬出了局部敏感哈希。
--
FROM 112.47.161.*
快于不快,很直观的可以看到效果。
这玩意靠吹牛没毛用。
【 在 zszqzzzf 的大作中提到: 】
: 本文转载自头条号:机器之心Pro
:
: 机器之心报道
: ...................
--
FROM 218.81.8.*
好像不好使。否则也不会找intel合作了。
【 在 meizhi (meizhi) 的大作中提到: 】
: 那标题是太唬人了。。如果哈希在gpu上好使,还是会吊打cpu。
: 发自「今日水木 on Redmi Note 7」
--
FROM 60.27.94.*
这个方案主要是利用locality sensitive hash把前向和后向的计算变成稀疏的,所以也就没GPU啥事儿了
【 在 meizhi (meizhi) 的大作中提到: 】
: 那标题是太唬人了。。如果哈希在gpu上好使,还是会吊打cpu。
: 发自「今日水木 on Redmi Note 7」
--
FROM 60.27.94.*