[发明专利]基于OpenCL的卷积神经网络并行处理方法有效
申请号: | 201910331464.3 | 申请日: | 2019-04-24 |
公开(公告)号: | CN110110844B | 公开(公告)日: | 2021-01-12 |
发明(设计)人: | 田小林;荀亮;张晰;李娇娇;李芳;李帅;逯甜甜;焦李成 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06N3/04 | 分类号: | G06N3/04 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 opencl 卷积 神经网络 并行 处理 方法 | ||
1.一种基于OpenCL的卷积神经网络并行处理方法,其特征在于,获取图像数据矩阵的重组矩阵,分块并行计算权值矩阵与重组矩阵的乘积,并行批量归一化乘积矩阵;该方法的具体步骤包括如下:
(1)获取图像数据矩阵的重组矩阵:
(1a)在主机内存中读取图像数据矩阵;
(1b)在GPU全局内存中创建图像数据矩阵缓存对象,将图像数据矩阵从主机内存传输至图像数据矩阵缓存对象中;
(1c)对图像数据矩阵进行并行组合重排,获得一个二维的重组矩阵;
(2)获取权值矩阵:
(2a)在主机内存中分别读取卷积核的数量和所有卷积核的权值,将所读取的所有卷积核的权值依次按行排列,组成权值矩阵;
(2b)在GPU全局内存中创建权值矩阵缓存对象,将权值矩阵从主机内存传输至权值矩阵缓存对象中;
(3)分块并行计算权值矩阵与重组矩阵的乘积:
(3a)创建OpenCL矩阵乘法内核,设置OpenCL矩阵乘法内核的二维全局工作项总数和二维工作组大小,并行执行OpenCL矩阵乘法内核的所有工作项;
(3b)以64×64个数据元素的大小,将权值矩阵不重叠地均匀分块,每一块构成一个权值共享矩阵,将重组矩阵不重叠地均匀分块,每一块构成一个重组共享矩阵,在GPU中并行地将所有权值共享矩阵和重组共享矩阵从全局内存传输至工作组的局部内存;
(3c)以8×4个数据元素的大小,将权值共享矩阵不重叠地均匀分块,每一块构成一个权值因子矩阵,将重组共享矩阵不重叠地均匀分块,每一块构成一个重组因子矩阵,在GPU中并行地将所有权值因子矩阵和重组因子矩阵从局部内存传输至工作项的私有内存;
(3d)在每个并行的工作项中,将权值因子矩阵和重组因子矩阵相乘,将乘积累加后组成乘积分块矩阵;
(3e)在GPU全局内存中创建乘积矩阵缓存对象,将每个工作项中的乘积分块矩阵组合成完整的乘积矩阵,并行地将乘积矩阵从私有内存中传输至乘积矩阵缓存对象中;
(4)对乘积矩阵进行并行批量归一化:
(4a)创建OpenCL批量均方内核,将OpenCL批量均方内核的一维全局工作项数设置为乘积矩阵行数的512倍,将一维工作组大小设置为512,并行执行OpenCL批量均方内核的所有工作项;
(4b)在GPU中并行地计算批量乘积矩阵中每行的均值和每行的方差;
(4c)创建OpenCL批量归一化内核,将OpenCL批量归一化内核的一维全局工作项总数设置为批量乘积矩阵的总数与乘积矩阵行数和列数的乘积,将一维工作组大小设置为512,并行执行OpenCL批量归一化内核的所有工作项;
(4d)在GPU中并行地将乘积矩阵进行批量归一化;
(5)输出特征值矩阵:
(5a)使用带泄漏的线性整流函数,构造OpenCL激活内核,计算批量乘积矩阵的总数与乘积矩阵行数和列数的乘积,将该乘积设置为OpenCL激活内核的一维全局工作项的总数,将一维工作组大小设置为512;
(5b)利用带泄漏的线性整流函数,在GPU中将乘积矩阵中的每个元素并行地进行激活,得到特征值矩阵;
(5c)将GPU全局内存中的特征值矩阵传输回主机内存,输出特征值矩阵和运行时间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910331464.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于处理图像的方法和系统
- 下一篇:一种基于并行多级宽度神经网络的学习方法