• 旷视MegEngine是如何将31*31的大核卷积计算速度提高10倍的


    2021年提议的Vision Transformer(VIT)已成为计算机视觉深度学习领域的一个有前途的研究主题。随着VIT的研究变得更加深入,一些研究人员受到VIT的大型接收领域的启发,将卷积网络也改造成具有更大的接收场来提高效率。根据有效的接收场(ERF)理论,ERF的大小与内核大小和模型深度的平方根成正比。这意味着通过堆叠层来实现大ERF的有效性不如增加卷积内核大小。因此,研究人员提出了包含大型卷积内核新的CNN结构。该网络可以达到与VIT相同的准确性。“大内核的cnn可以胜过小内核的cnn”这可能是今年来对于CNN研究最大的成果了。

    内核带来了更多的计算和参数

    CNN中最常见的卷积内核大小是3x3、5x5、7x7。一般情况下如果卷积内核的大小超过9x9就将其确定为“大”。卷积内核的大小增加了n,参数数量和浮点操作(FLOPS)的数量将大约增加n平方。这就是研究人员在探索CNN新结构时首先不考虑大型内核卷积的主要原因。如下图所示,逐通道卷积(又称深度卷积)可以将FLOPs和参数数量减少到密集卷积的1/(输入通道数量)。这就是为什么大多数研究人员将大核卷积设计为深度卷积,这样既可以获得大核卷积的好处,又不需要大幅增加参数和FLOPs。

    但是在相同的FLOPs限制下,研究人员发现,他们的大核深度卷积神经网络比传统的网络运行得慢得多。

    MegEngine团队发现,通过适当的优化,当内核尺寸越来越大时,深度卷积几乎不需要任何成本。本文就是对他们研究成果的介绍。

    如何寻找大核卷积的优化空间?

    为了回答这个问题,我们需要将Roofline 模型作为背景。如下图所示,roofline模型用于描述在计算平台的算力和带宽的限制下,程序所能达到的理论性能上界。

    roofline模型的示意图,有三个重要概念:

    • 算力:每秒所完成的浮点运算次数,单位为FLOP/s或GFLOP/s
    • 带宽:每秒所完成的内存读取量,单位为Byte/s或GByte/s
    • 计算密度:又称访存比,是算力与带宽的比值,即每字节读取所完成的浮点运算量,单位为FLOP/Byte

    “roofline”是指TP对IM的图的形状。设备的理论峰决定了“屋顶”的高度(蓝线)。同时,“屋顶”(红线)的斜率是设备的最大访问带宽。这两条彩色线的连接也分隔两种类型的应用,计算结合和内存结合的瓶颈的分离。

    当应用程序的计算密度I超过最大IM时,其性能只能达到计算设备的理论峰值TP。应用程序的最大性能P显然与计算密度I成正比。这种类型的应用程序称为计算绑定。当应用程序的计算密度小于IM时,性能是由设备的最大带宽和计算密度确定的。这种类型的应用程序称为内存绑定。与计算绑定方案相反,增加设备带宽或增加内存绑定应用程序的计算密度可能会导致应用程序性能的线性增加。

    完整文章

    https://avoid.overfit.cn/post/abc028ff6f594075a69f177550f56dfc

  • 相关阅读:
    Javaweb 第4 天xml 课程
    Javaweb 第2天 JavaScript课程
    Javaweb 第1天 HTML和CSS课程
    第27天反射(解剖)技术
    Ip 讲解
    第26 天网络编程
    第25天多线程、网络编程
    【剑指offer】连续子数组的最大和,C++实现
    [剑指offer]数组中最小的K个数,C++实现
    【剑指offer】数组中出现次数超过数组长度一半的数字,C++实现
  • 原文地址:https://www.cnblogs.com/deephub/p/16323507.html
Copyright © 2020-2023  润新知