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

来源丨机器之心

神经网络训练通常是 GPU 大显身手的领域,然而莱斯大学和英特尔等机构对 GPU 的地位发起了挑战。

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

但近日,莱斯大学、蚂蚁集团和英特尔等机构的研究者发表了一篇论文,表明了在消费级 CPU 上运行的 AI 软件,其训练深度神经网络的速度是 GPU 的 15 倍。这篇论文已被 MLSys 2021 会议接收。

论文链接:https://proceedings.mlsys.org/paper/2021/file/3636638817772e42b59d74cff571fbb3-Paper.pdf

论文通讯作者、莱斯大学布朗工程学院的计算机科学助理教授 Anshumali Shrivastava 表示:「训练成本是 AI 发展的主要瓶颈,一些公司每周就要花费数百万美元来训练和微调 AI 工作负载。」他们的这项研究旨在解决 AI 发展中的训练成本瓶颈。

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 倍。」

Shabnam Daghaghi。

此外,论文二作、莱斯大学计算机科学与数学本科生 Nicholas Meisburger 认为,CPU 仍然是计算领域最普遍的硬件,其对 AI 的贡献无可估量。

技术细节

在本论文中,该研究重新了解了在两个现代 Intel CPU 上的 SLIDE 系统,了解 CPU 在训练大型深度学习模型方面的真正潜力。该研究允许 SLIDE 利用现代 CPU 中的矢量化、量化和一些内存优化。与未优化的 SLIDE 相比,在相同的硬件上,该研究的优化工作带来了 2-7 倍的训练时间加速。

SLIDE 的工作流程包括:初始化、前向-反向传播和哈希表更新。下图 1 为前向-反向传播工作流程图:

前向和后向传播示意图。

该研究专注于大规模评估,其中所需的神经网络拥有数亿个参数。在两台 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:

对于 Amazon-670K 和 WikiLSH-325K,研究者使用了一个标准的全连接神经网络,隐藏层大小为 128,其中输入和输出都是多个热编码向量。对于 Text8,该研究使用标准 word2vec 语言模型,隐藏层大小为 200,其中输入和输出分别是一个热编码向量和多个热编码向量。

下图 6 第一行代表所有数据集的时间收敛图,结果显示了该研究提出的优化 SLIDE 在 CPX 和 CLX(深绿色和浅绿色)上训练时间优于其他基准 。图 6 的底部行显示了所有数据集的柱状图。

下表 2 给出了三个数据集上的详细数值结果:

下表 3 中,研究者展示了 BF16 指令对每个 epoch 平均训练时间的影响。结果表明,在 Amazon-670K 和 WikiLSH325K 上,激活和权重中使用 BF16 指令分别将性能提升了 1.28 倍和 1.39 倍。但是,在 Text8 上使用 BF16 没有产生影响。

下表 4 展示了有无 AVX-512 时,优化 SLIDE 在三个数据集上的每个 epoch 平均训练时间对比。结果表明,AVX-512 的矢量化将平均训练时间减少了 1.2 倍。

参考链接:

https://techxplore.com/news/2021-04-rice-intel-optimize-ai-commodity.html

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近3000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

3D视觉工坊 CSDN认证博客专家 算法 3D视觉
个人公众号:3D视觉工坊。公众号特邀嘉宾及合伙人,先后就职于国内知名研究机构、自动驾驶公司、海康研究院,主要研究方向为深度学习、目标检测、语义分割、图像处理、自动驾驶感知算法等,CSDN博客专家。博主先后任职于国内知名研究院、知名大厂,致力于3D视觉算法、VLAM算法开发,涉及相机标定、手眼标定、结构光、点云后处理、三维重建等相关领域的研究,同时也是CSDN博客专家。3D视觉工坊坚持原创,近一年来输出了非常多的高质量文章,获得了粉丝的一致好评,我们将始终坚持走原创路线,打造一个铁杆粉丝的聚集区。
已标记关键词 清除标记
相关推荐
<p> <strong><span style="font-size:24px;">课程简介:</span></strong><br /> <span style="font-size:18px;">历经半个多月的时间,</span><span style="font-size:18px;">Debug</span><span style="font-size:18px;">亲自撸的 “企业员工角色权限管理平台” 终于完成了。正如字面意思,本课程讲解的是一个真正意义上的、企业级的项目实战,主要介绍了企业级应用系统中后端应用权限的管理,其中主要涵盖了六大核心业务模块、十几张数据库表。</span><span></span> </p> <p> <span style="font-size:18px;">其中的核心业务模块主要包括用户模块、部门模块、岗位模块、角色模块、菜单模块和系统日志模块;与此同时,</span><span style="font-size:18px;">Debug</span><span style="font-size:18px;">还亲自撸了额外的附属模块,包括字典管理模块、商品分类模块以及考勤管理模块等等,主要是为了更好地巩固相应的技术栈以及企业应用系统业务模块的开发流程!</span><span></span> </p> <p> <br /> </p> <p> <span style="font-size:24px;"><strong>核心技术栈列表</strong></span><span style="font-size:24px;"><strong>:</strong></span> </p> <p> <br /> </p> <p> <span style="font-size:18px;">值得介绍的是,本课程在技术栈层面涵盖了前端和后端的大部分常用技术,包括</span><span style="font-size:18px;">Spring Boot</span><span style="font-size:18px;">、</span><span style="font-size:18px;">Spring MVC</span><span style="font-size:18px;">、</span><span style="font-size:18px;">Mybatis</span><span style="font-size:18px;">、</span><span style="font-size:18px;">Mybatis-Plus</span><span style="font-size:18px;">、</span><span style="font-size:18px;">Shiro(</span><span style="font-size:18px;">身份认证与资源授权跟会话等等</span><span style="font-size:18px;">)</span><span style="font-size:18px;">、</span><span style="font-size:18px;">Spring AOP</span><span style="font-size:18px;">、防止</span><span style="font-size:18px;">XSS</span><span style="font-size:18px;">攻击、防止</span><span style="font-size:18px;">SQL</span><span style="font-size:18px;">注入攻击、过滤器</span><span style="font-size:18px;">Filter</span><span style="font-size:18px;">、验证码</span><span style="font-size:18px;">Kaptcha</span><span style="font-size:18px;">、热部署插件</span><span style="font-size:18px;">Devtools</span><span style="font-size:18px;">、</span><span style="font-size:18px;">POI</span><span style="font-size:18px;">、</span><span style="font-size:18px;">Vue</span><span style="font-size:18px;">、</span><span style="font-size:18px;">LayUI</span><span style="font-size:18px;">、</span><span style="font-size:18px;">ElementUI</span><span style="font-size:18px;">、</span><span style="font-size:18px;">JQuery</span><span style="font-size:18px;">、</span><span style="font-size:18px;">HTML</span><span style="font-size:18px;">、</span><span style="font-size:18px;">Bootstrap</span><span style="font-size:18px;">、</span><span style="font-size:18px;">Freemarker</span><span style="font-size:18px;">、一键打包部署运行工具</span><span style="font-size:18px;">Wagon</span><span style="font-size:18px;">等等,如下图所示:</span><span></span> </p> <img src="https://img-bss.csdn.net/201908070402564453.png" alt="" /> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p> <p> <span style="font-size:24px;">课程内容与收益</span><span style="font-size:24px;">:</span><span></span> </p> <p> <br /> </p> <p> <img src="https://img-bss.csdn.net/201908070403452052.png" alt="" /> </p> <p> <span style="font-size:18px;">总的来说,</span><span style="font-size:18px;">本课程是一门具有很强实践性质的“项目实战”课程,即“</span><span style="font-size:18px;">企业应用员工角色权限管理平台</span><span style="font-size:18px;">”,主要介绍了当前企业级应用系统中员工、部门、岗位、角色、权限、菜单以及其他实体模块的管理;其中,还重点讲解了如何基于</span><span style="font-size:18px;">Shiro</span><span style="font-size:18px;">的资源授权实现员工</span><span style="font-size:18px;">-</span><span style="font-size:18px;">角色</span><span style="font-size:18px;">-</span><span style="font-size:18px;">操作权限、员工</span><span style="font-size:18px;">-</span><span style="font-size:18px;">角色</span><span style="font-size:18px;">-</span><span style="font-size:18px;">数据权限的管理;在课程的最后,还介绍了如何实现一键打包上传部署运行项目等等。如下图所示为本权限管理平台的数据库设计图:</span> </p> <p> <span></span> </p> <p> <br /> </p> <p> <img src="https://img-bss.csdn.net/201908070404285736.png" alt="" /> </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p> <p> <span style="font-size:18px;"><strong>以下为项目整体的运行效果截图:</strong></span> <span></span> </p> <img src="https://img-bss.csdn.net/201908070404538119.png" alt="" /> <p> <br /> </p> <p> <img src="https://img-bss.csdn.net/201908070405002904.png" alt="" /> </p> <p> <br /> </p> <p> <br /> </p> <p> <img src="https://img-bss.csdn.net/201908070405078322.png" alt="" /> </p> <p> <br /> </p> <p> <img src="https://img-bss.csdn.net/201908070405172638.png" alt="" /> </p> <p> <br /> </p> <p> <img src="https://img-bss.csdn.net/201908070405289855.png" alt="" /> </p> <p> <br /> </p> <p> <img src="https://img-bss.csdn.net/201908070405404509.png" alt="" /> </p> <p> <br /> </p> <p> <img src="https://img-bss.csdn.net/201908070405523495.png" alt="" /> </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p> <p style="text-align:left;"> <span style="font-size:18px;">值得一提的是,在本课程中,</span><span style="font-size:18px;">Debug</span><span style="font-size:18px;">也向各位小伙伴介绍了如何在企业级应用系统业务模块的开发中,前端到后端再到数据库,最后再到服务器的上线部署运行等流程,如下图所示:</span><span></span> </p> <img src="https://img-bss.csdn.net/201908070406328884.png" alt="" /> <p> <br /> </p>
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值