基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法.docx
《基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法.docx》由会员分享,可在线阅读,更多相关《基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于GEMM实现的CNN底层算法被改?Google提出全新间接卷积算法|MaratDukhanfromGoogleResearch译者|凯隐责编|Jane出品|AI科技大本营ID:rgznai100【导读】本文介绍的内容主要聚焦Google的一项最新工作改变基于GEMM实现的CNN底层算法提出的新方法。通用矩阵乘法GeneralMatrixMultiply,GEMM是广泛用于线性代数、机器学习、统计学等各个领域的常见底层算法其实现了根本的矩阵与矩阵相乘的功能因此算法效率直接决定了所有上层模型性能目前主流的卷积算法都是基于GEMM来实现的。来自谷歌的PeterVajda在ECV2019中提出了一
2、种全新的间接卷积算法用于改良GEMM在实现卷积操作时存在的一些缺点进而提升计算效率。通用矩阵乘法GEMM是根底线性代数子程序库BasicLinearAlgebraSubprograms,BLAS中的一个函数。BLAS提供了实现矩阵以及向量根本运算的函数最早于1979年度由C.L.LAWSON提出。BLAS的开展大致可以分为三个阶段levels的历程这以及函数定义出版顺序和算法中多项式的阶数和复杂性有关第一阶段只包含与向量vector有关的运算第二阶段添加了向量与矩阵进展运算的操作第三阶段添加了矩阵与矩阵之间的运算前两个阶段的BLAS都是用于向量处理器的而第三阶段适用于矩阵处理器所以BLAS的开
3、展以及硬件的开展密不可分。GEMM属于第三阶段的算法正式公布于1990年度其迭代更新形式为其中A以及B可以进展转置或者hermitian共轭转置而A、B以及C都可以被忽略bestrided因此实际上这个公式就表示了任意矩阵之间所有可能的加法以及乘法组合例如最根本的A*B可以将置1C置为全0矩阵即可这也是其通用性的表现。由于矩阵乘法相对于向量-向量乘法和向量-矩阵乘法有更低的时间复杂度效率更高因此其广泛用于许多科学任务中与之相关的GEMM算法成为了目前BLAS设计者的主要优化对象。例如可以将A以及B分解为分块矩阵使得GEMM可以递归实现。有关GEMM的详细信息可以参见123。怎样对GEMM进展优
4、化是BLAS相关工作的研究热点。基于GEMM的卷积算法及其缺点卷积神经网络CNN在CV问题中的表现很出色有多种在算法层面对齐进展实现的方法直接卷积算法采用7层循环快速卷积算法利用傅里叶变换来进展卷积和基于GEMM的卷积算法。通过将卷积操作用矩阵乘法来代替进而使用GEMM算法来间接进展卷积操作这使得卷积操作可以在任何包含GEMM的平台上进展并且受益于矩阵乘法的高效性任何针对GEMM的改良以及研究都能有助于卷积运算效率的提升进而进步模型的运算速度因此目前大局部主流的神经网络框架例如Tensorflow、Pytorch以及Caffe都使用基于GEMM的方法来在底层代码中实现卷积。详细的基于GEMM的
5、卷积方法需要借助于im2col或者im2rowbuffer来内存转换使得数据格式知足GEMM算法的输入要求进而将卷积操作转化为GEMM操作然而这个转换经过是一个计算开销以及内存开销都比拟大的经过十分是在输入channel数较小时这个经过会在整个卷积经过中占有很大的比例。简言之就是在卷积经过中每个pixel都会被屡次重复的转换这是不必要的计算开销。因此有许多工作都在对这一经过进展改良本文工作提出了一种改良算法间接卷积算法IndirectConvolutionalgorithm主要有以下两个优点1、去掉了im2row的转换经过这使得算法性能有了宏大的提升upto62%。2、用了一个更小的indir
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 GEMM 实现 CNN 底层 算法 Google 提出 全新 间接 卷积
限制150内