基于OpenCL标准的卷积神经网络加速方法技术

技术编号:16546727 阅读:100 留言:0更新日期:2017-11-11 11:36
本发明专利技术提出了一种基于OpenCL标准的卷积神经网络加速方法,主要解决现有CPU处理卷积神经网络效率低的问题。其实现步骤为:1.读入原始的三维图像数据,将其传递到GPU的全局内存中;2.读取权重和偏置数据到GPU的全局内存中;3.将GPU的全局内存原始图像数据读取到GPU的局部内存中;4.初始化参数,构造线性激活函数Leaky‑ReLU;5.计算卷积神经网络第十二层的图片数据;6.计算卷积神经网络第十五层的图片数据;7.计算卷积神经网络第十八层的图片数据,并将该将图片数据存入GPU,再传回到主机内存中,给出运算时间。本发明专利技术提高了卷积神经网络运算速度,可用于计算机视觉的物体检测。

Convolution neural network acceleration method based on OpenCL standard

The present invention proposes a convolution neural network acceleration method based on OpenCL standard, which mainly solves the problem that the existing CPU processing convolutional neural network has low efficiency. The method comprises the following steps: three-dimensional image data read the original 1., pass it to the global memory GPU; global memory 2. reads the weights and bias data to GPU; 3. global memory GPU read the original image data to local memory in GPU; 4. initialization parameters, constructing linear activation function Leaky ReLU the 5. picture data; calculate the convolution neural network of twelfth layers; the picture data calculation 6. convolutional neural network fifteenth layer; image data of 7. convolution neural network of eighteenth layers, and the image data are stored in GPU, and then back to the main memory, the computation time is given. The method improves the speed of convolution neural network, and can be used for object detection in computer vision.

【技术实现步骤摘要】
基于OpenCL标准的卷积神经网络加速方法
本专利技术属于无人驾驶感知
,特别涉及一种卷积神经网络加速方法,可用于计算机视觉的物体检测。
技术介绍
随着神经网络研究的深入,研究人员发现对图片输入做卷积操作和生物视觉中的神经元接受局部内的输入有相似性,在神经网络中加上卷积操作成为主流趋势。由于卷积神经网络CNN在神经网络的结构上针对视觉输入本身特点做的特定设计,所以卷积神经网络成为计算机视觉领域的必然选择。无人驾驶的感知部分作为计算机视觉的领域范围,不可避免地成为CNN发挥作用的舞台。传统的深度学习算法主要计算工具是CPU,因为CPU的通用性好,硬件架构已经成熟。然而,当深度学习算法对运算能力需求越来越大时,特别是卷积神经网络算法,CPU执行的效率不能满足需求。此时GPU进入了深度学习的研究者视野,GPU提供大量的并行运算单元,可以同时对图像像素进行并行处理,这个架构正好可以运用到深度学习算法上。深度学习卷积神经网络模型中的参数是通过从大数据中学习获得的,能够应对车辆行驶过程中复杂的情形,且精确度高。但是对数据的质量和数量要求高,对计算能力也有很高的要求,所以用GPU做计算载体更具有优势。而且在GPU上编程技术门槛较低,算法开发周期较短。
技术实现思路
本专利技术的目的在于针对上述现有技术的不足,提供一种基于OpenCL标准的卷积神经网络加速方法,以在应对复杂的交通环境时,满足高的精确度要求和实时性要求。本专利技术的技术方案完成如下:一、技术原理OpenCL(OpenComputingLanguage)是第一个面向异构系统通用目的并行编程的标准,也是一个统一的编程环境,在异构架构下,主机CPU完成任务的调度与分配,而加速设备完成数据密集型的计算任务。利用OpenCL标准对图像算法进行加速的过程中,并行粒度的选择和数据的访存策略将直接影响到算法的加速效果。因此,利用OpenCL语言对图像算法进行加速时需要对并行粒度进行合理选择,以及对数据访存策略进行优化。主流的异构架构为CPU+GPU异构架构,与传统单一架构相比,异构架构能够更好的实现高性能并行计算,在深度学习、大数据和科学计算等领域有广阔的前景。此外,GPU相比于CPU有更大的数据吞吐量和更强的浮点计算能力,特别适合并行计算。卷积神经网络算法具有高度的并行性和较大的数据吞吐量,可以利用CPU+GPU的异构架构加速算法的执行速度。本专利技术是在OpenCL标准下,通过对卷积神经网络的数据访存策略进行优化和对粒度进行合适选择,完成了卷积神经网络在异构架构下的并行加速。二、技术方案根据上述原理,本专利技术的实现方案包括如下:1)将原始的三维图像数据读入到主机内存中,经过边缘扩展处理后,再将图像数据传递到GPU的全局内存中;2)将训练得到的用于和图片数据卷积的权重和偏置数据从文本文件读入到主机内存中,再将权重和偏置数据传递到GPU的全局内存中;3)将GPU的全局内存原始图片数据分块读入到GPU的局部内存中;4)初始化卷积核尺寸为k=3*3,卷积层步长s=1,降采样层尺寸p=2*2,降采样层步长d=2,图片边缘扩展尺寸z=1;5)构造含有阈值L的线性激活函数Leaky-ReLU模型:其中,L为线性激活函数Leaky-ReLU模型的阈值,取值为L=0.1,x为大小1*1的图片数据;6)计算卷积神经网络第十二层的图片数据:将经过步骤1)和步骤3)得到的GPU局部内存中的原始图片数据与步骤2)得到的卷积神经网络第一层的权重数据进行卷积运算,并加上偏置数据进行激活函数Leaky-ReLU运算,再进行降采样处理,得到卷积神经网络第一层的图片数据,再依次进行卷积运算、激活函数Leaky-ReLU运算和降采样运算共六次,得到卷积神经网络第十二层的图片数据;7)计算卷积神经网络第十五层的图片数据:将由步骤6)得到的卷积神经网络第十二层的图片数据与卷积神经网络第十三层的权重数据进行卷积运算,得到卷积神经网络第十三层的图片数据,再依次经过两次卷积运算和激活函数Leaky-ReLU运算共二次,得到卷积神经网络第十五层的图片数据;8)计算卷积神经网络第十八层的图片数据:8a)将卷积神经网络第十五层的图片数据全部展成大小为1*1的一维数据,并将展开的一维数据与卷积神经网络第十六层的权重数据相乘相加,再加上偏置数据,得出卷积神经网络第十六层的图片数据;8b)将卷积神经网络第十六层的图片数据与卷积神经网络第十七层的权重数据进行相乘相加,并加上偏置数据,再经过激活函数Leaky-ReLU运算后输出卷积神经网络第十七层的图片数据;8c)将卷积神经网络第十七层的图片数据与卷积神经网络第十八层的权重数据进行相乘相加,并加上偏置数据,得出卷积神经网络第十八层的图片数据,即最终的计算结果,将该计算结果传回GPU全局内存;9)将GPU的全局内存中的计算结果再传回到主机内存中,得出识别结果和运算时间。本专利技术与现有技术相比的有益效果在于:本专利技术由于对卷积神经网络算法进行了GPU并行加速计算,与现有技术中对卷积神经网络算法在单一架构CPU下串行计算相比,CPU+GPU异构架构,能够更好的实现高性能并行计算,同时由于GPU具有很大的数据吞吐量,对浮点的计算能力要远远高于CPU对浮点的计算能力,更适合数据密集型计算任务,因而本专利技术在保持卷积神经网络算法精确度能力不变的情况下,大幅提高了卷积神经网络算法的计算速度。附图说明图1是本专利技术的实现流程图;图2是本专利技术使用的卷积神经网络结构图。具体实施方式以下结合附图对本专利技术的技术方案和效果做进一步详细描述。参照图1,本专利技术的实现步骤包括如下:步骤1,读入原始的三维图像数据,并将其传递到GPU的全局内存中。1.1)输入大小为448*448的三维彩色道路图片,该原始图片数据读入到主机内存中;1.2)选择但不限于AMDR9200的GPU做为加速设备,将主机内存中的原始图片数据四个边界各扩展一位后传递到GPU的全局内存中。步骤2,读取权重数据和偏置数据到GPU的全局内存中。2.1)将由卷积神经网络训练得到的权重数据和偏置数据先存于文本文件中,再将文本文件读入到主机内存中;2.2)将主机内存中的权重数据和偏置数据传递到GPU的全局内存。步骤3,将GPU的全局内存原始图像数据读取到GPU的局部内存中。考虑到所选GPU的单个工作的处理能力,将GPU全局内存中的原始图像数据分成若干个大小为10*10*4的浮点类型的数据块,并读入到GPU局部内存中。步骤4,初始化参数。初始化卷积核尺寸为k=3*3,卷积层步长s=1,降采样层尺寸p=2*2,降采样层步长d=2,图片边缘扩展尺寸z=1。步骤5,构造含有阈值L的线性激活函数Leaky-ReLU模型:其中,L为线性激活函数Leaky-ReLU模型的阈值,本专利技术取L=0.1,x为大小1*1的图片数据,当x小于0时,f(x)为线性激活函数Leaky-ReLU的阈值L和图片数据x乘积的结果,当x大于等于0时,图片数据直接赋值给f(x)。步骤6,计算卷积神经网络第十二层的图片数据:参照图2,本步骤的具体实现如下:6.1)将经过步骤1)和步骤3)得到的GPU局部内存中的原始图片数据与步骤2)得到的卷积神经网络第一层的权重数据进行卷积运算,并加上偏置数据进行激活函本文档来自技高网...
基于OpenCL标准的卷积神经网络加速方法

【技术保护点】
一种基于OpenCL标准的卷积神经网络加速方法,包括:1)将原始的三维图像数据读入到主机内存中,经过边缘扩展处理后,再将图像数据传递到GPU的全局内存中;2)将训练得到的用于和图片数据卷积的权重和偏置数据从文本文件读入到主机内存中,再将权重和偏置数据传递到GPU的全局内存中;3)将GPU的全局内存原始图片数据分块读入到GPU的局部内存中;4)初始化卷积核尺寸为k=3*3,卷积层步长s=1,降采样层尺寸p=2*2,降采样层步长d=2,图片边缘扩展尺寸z=1;5)构造含有阈值L的线性激活函数Leaky‑ReLU模型:

【技术特征摘要】
1.一种基于OpenCL标准的卷积神经网络加速方法,包括:1)将原始的三维图像数据读入到主机内存中,经过边缘扩展处理后,再将图像数据传递到GPU的全局内存中;2)将训练得到的用于和图片数据卷积的权重和偏置数据从文本文件读入到主机内存中,再将权重和偏置数据传递到GPU的全局内存中;3)将GPU的全局内存原始图片数据分块读入到GPU的局部内存中;4)初始化卷积核尺寸为k=3*3,卷积层步长s=1,降采样层尺寸p=2*2,降采样层步长d=2,图片边缘扩展尺寸z=1;5)构造含有阈值L的线性激活函数Leaky-ReLU模型:其中,L为线性激活函数Leaky-ReLU模型的阈值,取值为L=0.1,x为大小1*1的图片数据;6)计算卷积神经网络第十二层的图片数据:将经过步骤1)和步骤3)得到的GPU局部内存中的原始图片数据与步骤2)得到的卷积神经网络第一层的权重数据进行卷积运算,并加上偏置数据进行激活函数Leaky-ReLU运算,再进行降采样处理,得到卷积神经网络第一层的图片数据,再依次进行卷积运算、激活函数Leaky-ReLU运算和降采样运算共六次,得到卷积神经网络第十二层的图片数据;7)计算卷积神经网络第十五层的图片数据:将由步骤6)得到的卷积神经网络第十二层的图片数据与卷积神经网络第十三层的权重数据进行卷积运算,得到卷积神经网络第十三层的图片数据,再依次经过两次卷积运算和激活函数Leaky-ReLU运算共二次,得到卷积神经网络第十五层的图片数据;8)计算卷积神经网络第十八层的图片数据:8a)将卷积神经网络第十五层的图片数据全部展成大小为1*1的一维数据,并将展开的一维数据与卷积神经网络第十六层的权重数据相乘相加,再加上偏置数据,得出卷积神经网络第十六层的图片数据;8b)将卷积神经网络第十六层的图片数据与卷积神经网络第十七层的权重数据进行相乘相加,并加上偏置数据,再经过激活函数Leaky-ReLU运算后输出卷积神经网络第十七层的图片数据;8c)将卷积神经网络第十七层的图片数据与卷积神经网络第十八层的权重数据进行相乘相加,并加上偏置数据,得出卷积神经网络第十八层的图片数据,即最终的计算结果,将该计算结果传回GPU全局内存;9)将GPU的全局内存中的计算结果再传回到主机内存中,得出识别结果和运算时间。2.根据权利要求1所述的方法,其特征在于:步骤6)中卷积神经网络第十二层的图片数据,按如下步骤计算获得:6a)对卷积神经网络第一层的图片数据进行降采样处理,求出2*2窗口中四个数据的最大值,其中窗口移动步长为2;再将每张输出图片的四个边缘扩展一位后输出卷积神经网络第二层的图片数据;6b)将卷积神经网络第二层的图片数据与卷积神经网络第...

【专利技术属性】
技术研发人员:王树龙殷伟刘而云刘红侠杜守刚
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1