cuDNN: efficient Primitives for Deep Learning 论文阅读笔记

本文探讨了如何通过cuDNN优化针对GPU的深度学习,特别是CNN的矩阵计算。主要讨论了三种卷积实现方法:直接实现、FFT以及转化为密集矩阵相乘。文中指出,虽然直接实现和FFT各有优缺点,但caffe采用的密集矩阵相乘方法在大型矩阵中具有较高的浮点运算与数据传输比率,能有效利用GPU缓存,减少内存交通。然而,它需要大量的临时内存,因此采用了分块加载和计算策略来优化。
摘要由CSDN通过智能技术生成

这篇论文主要讨论如何针对CNN做一些GPU矩阵计算的优化。传统CNN计算主要开销是在convolutions, activation function, pooling.

首先,我们看convolution的操作过程:


参数表:



O是输出input feature map,F是filter, D0是input  feature  map. 从公式看到如果用循环操作,需要7次循环,n,k,p,q4次可独立循环,c,r,s是累加操作的循环。

其次,我们看convolution在GPU上如何实现,文中介绍了三种方法:

第一,最直观的方法是直接实现如上公式,但是这种实现呢需要处理许多的corner case。 文中介绍cuda-convnet2是实现了该种方法,该种方法在不同取值的卷积参数空间效率不一,比如batch size

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值