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

    文章

    4970

    浏览量

    102958
  • 深度学习
    +关注

    关注

    73

    文章

    5497

    浏览量

    121094

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

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

收藏 人收藏

    评论

    相关推荐

    NPU在深度学习中的应用

    随着人工智能技术的飞速发展,深度学习作为其核心驱动力之一,已经在众多领域展现出了巨大的潜力和价值。NPU(Neural Processing Unit,神经网络处理单元)是专门为深度学习
    的头像 发表于 11-14 15:17 473次阅读

    GPU深度学习应用案例

    GPU在深度学习中的应用广泛且重要,以下是一些GPU深度学习应用案例: 一、图像识别 图像识别是深度学习
    的头像 发表于 10-27 11:13 374次阅读

    激光雷达技术的基于深度学习的进步

    信息。这使得激光雷达在自动驾驶、无人机、机器人等领域具有广泛的应用前景。 二、深度学习技术的发展 深度学习是机器学习的一个分支,
    的头像 发表于 10-27 10:57 364次阅读

    AI大模型与深度学习的关系

    AI大模型与深度学习之间存在着密不可分的关系,它们互为促进,相辅相成。以下是对两者关系的介绍: 一、深度学习是AI大模型的基础 技术支撑 :深度
    的头像 发表于 10-23 15:25 605次阅读

    深度学习中的时间序列分类方法

    时间序列分类(Time Series Classification, TSC)是机器学习深度学习领域的重要任务之一,广泛应用于人体活动识别、系统监测、金融预测、医疗诊断等多个领域。随着深度
    的头像 发表于 07-09 15:54 857次阅读

    深度学习中的无监督学习方法综述

    深度学习作为机器学习领域的一个重要分支,近年来在多个领域取得了显著的成果,特别是在图像识别、语音识别、自然语言处理等领域。然而,深度学习模型
    的头像 发表于 07-09 10:50 652次阅读

    深度学习与nlp的区别在哪

    方法,通过模拟人脑的神经网络结构,实现对数据的自动特征提取和学习深度学习的核心是构建多层的神经网络结构,每一层都包含大量的神经元,这些神经元通过权重连接,实现对输入数据的逐层抽象和
    的头像 发表于 07-05 09:47 899次阅读

    深度学习中的模型权重

    深度学习这一充满无限可能性的领域中,模型权重(Weights)作为其核心组成部分,扮演着至关重要的角色。它们不仅是模型学习的基石,更是模型智能的源泉。本文将从模型权重的定义、作用、优化、管理以及应用等多个方面,深入探讨
    的头像 发表于 07-04 11:49 1165次阅读

    深度学习常用的Python库

    深度学习作为人工智能的一个重要分支,通过模拟人类大脑中的神经网络来解决复杂问题。Python作为一种流行的编程语言,凭借其简洁的语法和丰富的库支持,成为了深度学习研究和应用的首选工具。
    的头像 发表于 07-03 16:04 619次阅读

    深度学习模型训练过程详解

    深度学习模型训练是一个复杂且关键的过程,涉及大量的数据、计算资源和精心设计的算法。训练一个深度学习模型,本质上是通过优化算法调整模型参数,
    的头像 发表于 07-01 16:13 1207次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器学习的范畴,但
    的头像 发表于 07-01 11:40 1306次阅读

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标的检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法中引入深度学习技术,使得
    发表于 04-23 17:18 1281次阅读
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>学习</b>下的语义SLAM

    为什么深度学习的效果更好?

    导读深度学习是机器学习的一个子集,已成为人工智能领域的一项变革性技术,在从计算机视觉、自然语言处理到自动驾驶汽车等广泛的应用中取得了显著的成功。深度
    的头像 发表于 03-09 08:26 614次阅读
    为什么<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的效果更好?

    【技术科普】主流的深度学习模型有哪些?AI开发工程师必备!

    接近于人工智能。通过学习样本数据的内在规律和表示层次,对文字、图像和声音等数据进行解释。深度学习的目标是让机器像人一样具有分析学习能力,能
    的头像 发表于 01-30 15:26 618次阅读
    【技术科普】主流的<b class='flag-5'>深度</b><b class='flag-5'>学习</b>模型有哪些?AI开发工程师必备!

    什么是深度学习?机器学习深度学习的主要差异

    2016年AlphaGo 击败韩国围棋冠军李世石,在媒体报道中,曾多次提及“深度学习”这个概念。
    的头像 发表于 01-15 10:31 1066次阅读
    什么是<b class='flag-5'>深度</b><b class='flag-5'>学习</b>?机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的主要差异