[发明专利]一种基于GPU的卷积运算内存访问优化方法有效
| 申请号: | 202010710031.1 | 申请日: | 2020-07-22 |
| 公开(公告)号: | CN111797985B | 公开(公告)日: | 2022-11-22 |
| 发明(设计)人: | 张伟哲;鲁刚钊;王峥;李克勤;孙广中 | 申请(专利权)人: | 哈尔滨工业大学 |
| 主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/04;G06F9/50 |
| 代理公司: | 黑龙江立超同创知识产权代理有限责任公司 23217 | 代理人: | 杨立超 |
| 地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 gpu 卷积 运算 内存 访问 优化 方法 | ||
1.一种基于GPU的卷积运算内存访问优化方法,其特征在于,包括:
将卷积核数据加载至共享内存中;
将卷积输出以32列为单位分割成子块,得到若干个包含32列数据的子块以及1个少于32列数据的子块;
设用于处理子块的线程有N个;每个线程计算该线程所需要的第一个数据的索引;
每个线程通过列重用算法从所述第一个数据的索引中获取剩余所需的输入数据,并将获取的输入数据传递给行重用算法;
经过行重用算法计算输出结果并存储在寄存器数据sum中;并将sum写入全局内存;
计算卷积输出中其余待计算的数据;
列重用算法的过程为:
每个线程从全局内存中加载该线程所需要的第一个数据和最后一个数据;
每个线程从间隔为2的线程处获取所需的第三个数据;
每个线程从间隔为1的线程处获取所需的第二个和第四个数据;
行重用算法的过程为:
每当加载完一行输入后,用该行输入计算所有能够通过该行计算出的输出。
2.根据权利要求1所述的基于GPU的卷积运算内存访问优化方法,其特征在于,列重用算法可用于任意大小的卷积核。
3.根据权利要求1或2所述的基于GPU的卷积运算内存访问优化方法,其特征在于,所述卷积运算为2D卷积,depth-wise卷积和多通道2D卷积。
4.根据权利要求1所述的基于GPU的卷积运算内存访问优化方法,其特征在于,还包括:
每个线程加载完所需的第一个数据和最后一个数据后,将所述第一个数据和最后一个数据合并成64位数据,存入第一变量数组中;其中所需的最后一个数据存入高32位,所需的第一个数据存入低32位;
将所有线程中需要向其他线程提供高32位数据的线程对应的变量值右移32位,其余线程右移0位,将得到的64位变量数组进行拆分,其中高32位作为所述第四个数据,低32位作为所述第二个数据。
5.根据权利要求1所述的基于GPU的卷积运算内存访问优化方法,其特征在于,每个线程通过CUDA shuffle指令从间隔为1或2的线程处获取所需的数据。
6.根据权利要求1所述的基于GPU的卷积运算内存访问优化方法,其特征在于,所述所有能够通过该行计算出的输出通过卷积算法的计算公式确定。
7.根据权利要求1所述的基于GPU的卷积运算内存访问优化方法,其特征在于,列重用算法可用于大小为3或5的卷积核。
8.根据权利要求1所述的基于GPU的卷积运算内存访问优化方法,其特征在于,所述其余待计算的数据包括边缘数据以及未被处理的内部数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010710031.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种旋转平送移载机
- 下一篇:一种新能源汽车、驱动电机油冷系统、控制方法





