0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度学习的最大短板原来是它!

SSDFans 来源:YXQ 2019-06-17 09:53 次阅读

上文用简单的小学数学算了一下Alexnet的参数说需要的内存空间,但对于运行的神经网络,还有一个运行时的资源的问题。在github上的convnet-burden上有一个feature memory[1]的概念,这个和输入的图片的大小和运算的batch的size 都有关。

因此,Nvida的GPU上的HBM和GDDR对于大部分神经网络的炼丹师都是非常重要,能够在一个GPU的内存里完成模型的运算而不用考虑换进换出是大有裨益的。

总体来说,这个统计还是很直观的[2],就是网络模型越复杂,参数的规模越大,资源的占用也就越多,对GPU的整体内存占用也是越多。因此如何在有限的GPU上完成模型的训练也成了一个非常有用的技巧。

在我们考虑计算对于内存带宽的需求之前,我们需要复习一下作为一个神经网络,每一层对于计算的需求,这个还是可以用小学数学搞定的东西。还是用标准的Alexnet为例。

对于计算来讲,卷积层应该是主要,对于Pooling来讲,应该是没有的,对于FC来讲,也是比较简单的。基本上是乘法.

Conv Layer的计算复杂度:

1. 当前的层的图片的width

2. 当前的层的图片的height

3.上一层的深度

4。当前层的深度

5. 当前kernel的大小

的乘积就是这一层卷积的计算复杂度。以Alexnet的conv1为例:

Conv-1:第一层的卷积有96个kernel。kernel的大小是11X11,卷积的stride是4,padding是0

当前的输出的是55X55,上一层的input的深度是3, 当前的kernel是11X11,当前的深度是96.因此

55X55X3X11X11X96=105,415,200次MAC的计算。

对于Alexnet来讲,需要注意的是conv2,4 ,5三个层的计算没有和上一层直接跨GPU,因此需要的计算规模上/2.

对于FC来讲,比较粗略的计算就是 输入和当前层的规模的乘积。

MaxPool-3:第五层卷积的最大值,Pooling是3X3, stride是2,

FC-1:第一个全连接层,有4096个神经元

因此FC-1 的计算就是:

6X6X256X4096=37,748,736

因此,总结一下之前的参数信息和计算量, Alexnet的图如下:

这个通过统计每一层的计算的复杂度,就可以得到整个网络的计算复杂度,也就是训练一次网络需要多少的MACC资源。对于alexnet 来讲就是:724,406,816 次操作。

这个时候,有一个关键的信息就出来了。就是芯片的能力,大家都是用TFLOPs来表示芯片的浮点处理能力。对于Nvida的芯片,有了TFLOPS,有个一个网络需要的计算量,我们就可以很快计算出每一层计算需要的时间了。

对于Alexnet 的conv1 来讲,在Nivida 最新的V100的120TFLOPs的GPU上,进行训练的执行时间差不多是105,415,200X2/(120X1,000,000,000,000), 约等于1.75us (微秒)。

对于Pooling这一层来讲,因为没有MACC的计算量,但是因为要Max Pooling,也需要大小比较的计算。因此,它的计算基本就是算是数据读取。因此它的数据读取是 conv-1 的55X55X96=290,440. 因此在同样的GPU下,它的执行时间就是 2.42ns.

好了,有了计算时间,现在需要来计算数据量了。对于Conv1来讲,它包含了对一下数据的读写:

对于输入数据的读取 227X227X3 =154,587

对于输出数据的写入55x55x96=290,400

对于参数的读取34848+96=34944

因此,就可以算出对于120TFLOP的GPU的要求:因为在很多ASIC芯片中,输入输出可能在DDR中,但是参数可能放在SRAM中,因此我们就分开计算了。

对于输入数据的读取 (154,587/1.75)X1000,000X4=351.95GB/s

对于输出数据的写入 (290,400/1.75)X1000,000X4=661.16GB/s

对于参数的读取 (34944 /1.75)X1,000,000X4=79.34GB/s

提个醒,我们现在的PC服务器上性能最高的DDR4的带宽基本上在19GB/s左右。看到压力了吧。现在的memory连很慢的CPU都跟不上。更何况老黄家的核弹。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    4592

    浏览量

    101706
  • 深度学习
    +关注

    关注

    73

    文章

    5237

    浏览量

    119906

原文标题:芯片架构师终于证明:深度学习的最大短板原来是它!

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    涨知识了!元器件包装标签中的“e”代码,原来是这个含义……

    涨知识了!元器件包装标签中的“e”代码,原来是这个含义……
    的头像 发表于 12-06 15:43 567次阅读

    GPU在深度学习中的应用与优势

    人工智能的飞速发展,深度学习作为其重要分支,正在推动着诸多领域的创新。在这个过程中,GPU扮演着不可或缺的角色。就像超级英雄电影中的主角一样,GPU在深度学习中拥有举足轻重的地位。那么
    的头像 发表于 12-06 08:27 714次阅读
    GPU在<b class='flag-5'>深度</b><b class='flag-5'>学习</b>中的应用与优势

    高速DAC相位噪声从何而来?首要的原因原来是它……

    高速DAC相位噪声从何而来?首要的原因原来是它……
    的头像 发表于 11-29 16:56 183次阅读
    高速DAC相位噪声从何而来?首要的原因<b class='flag-5'>原来是</b>它……

    深度学习的由来 深度学习的经典算法有哪些

    深度学习作为机器学习的一个分支,其学习方法可以分为监督学习和无监督学习。两种方法都具有其独特的
    发表于 10-09 10:23 358次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>的由来 <b class='flag-5'>深度</b><b class='flag-5'>学习</b>的经典算法有哪些

    一文详解机器学习深度学习的区别

    深度学习这几年特别火,就像5年前的大数据一样,不过深度学习其主要还是属于机器学习的范畴领域内,所以这篇文章里面我们来唠一唠机器
    发表于 09-06 12:48 1339次阅读
    一文详解机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的区别

    深度学习服务器怎么做 深度学习服务器diy 深度学习服务器主板用什么

    深度学习服务器怎么做 深度学习服务器diy 深度学习服务器主板用什么  随着人工智能的飞速发展,
    的头像 发表于 08-17 16:11 540次阅读

    深度学习框架和深度学习算法教程

    深度学习框架和深度学习算法教程 深度学习是机器学习
    的头像 发表于 08-17 16:11 717次阅读

    深度学习框架的作用是什么

    深度学习框架的作用是什么 深度学习是一种计算机技术,它利用人工神经网络来模拟人类的学习过程。由于其高度的精确性和精度,
    的头像 发表于 08-17 16:10 1166次阅读

    深度学习框架是什么?深度学习框架有哪些?

    深度学习框架是什么?深度学习框架有哪些?  深度学习框架是一种软件工具,它可以帮助开发者轻松快速
    的头像 发表于 08-17 16:03 1771次阅读

    什么是深度学习算法?深度学习算法的应用

    什么是深度学习算法?深度学习算法的应用 深度学习算法被认为是人工智能的核心,它是一种模仿人类大脑
    的头像 发表于 08-17 16:03 1477次阅读

    深度学习是什么领域

    深度学习是什么领域  深度学习是机器学习的一种子集,由多层神经网络组成。它是一种自动学习技术,可
    的头像 发表于 08-17 16:02 1210次阅读

    深度学习算法简介 深度学习算法是什么 深度学习算法有哪些

    深度学习算法简介 深度学习算法是什么?深度学习算法有哪些?  作为一种现代化、前沿化的技术,
    的头像 发表于 08-17 16:02 6809次阅读

    深度学习的七种策略

    ,需要执行一些策略。在本文中,我们将讨论七种深度学习策略,这些策略可以帮助人们更好地发掘深度学习的潜力。 1. 找到更多的数据 深度
    的头像 发表于 08-17 16:02 1306次阅读

    AI、机器学习深度学习的区别及应用

    深度学习和神经网络的区别在于隐藏层的深度。一般来说,神经网络的隐藏层要比实现深度学习的系统浅得多,而深度
    发表于 07-28 10:44 325次阅读
    AI、机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的区别及应用

    智造之眼丨深度学习应用

    智造之眼®科学设计深度学习各应用流程,在尽量简化前期准备工作的基础上为客户提供稳定且准确的深度学习解决方案。
    的头像 发表于 05-04 16:55 472次阅读
    智造之眼丨<b class='flag-5'>深度</b><b class='flag-5'>学习</b>应用