[发明专利]一种CNN全连接层运算的多并行加速方法有效
| 申请号: | 201910818287.1 | 申请日: | 2019-08-30 | 
| 公开(公告)号: | CN110543936B | 公开(公告)日: | 2022-03-25 | 
| 发明(设计)人: | 李宗凌;汪路元;禹霁阳;程博文;李珂;蒋帅;庞亚龙;郝梁;牛跃华;刘伟伟 | 申请(专利权)人: | 北京空间飞行器总体设计部 | 
| 主分类号: | G06N3/04 | 分类号: | G06N3/04 | 
| 代理公司: | 北京理工大学专利中心 11120 | 代理人: | 李微微 | 
| 地址: | 100094 *** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 cnn 连接 运算 并行 加速 方法 | ||
1.一种CNN全连接层运算的多并行加速方法,其特征在于,包括如下步骤:
步骤1、根据目标类型种类及特征选取运算数据格式:
步骤2、根据全连接层参数数据数量和数据格式位宽确定所需的存储资源,由存储资源和计算硬件资源确定运算并行度k;
步骤3、将全连接层权重参数数据格式转换为步骤1确定的数据格式;
假设格式转换后的权重参数数据长度为N,卷积层的数据长度为L;
从权重参数数据的第一个数据点开始,共抽取长度为L的数据点,得到第一份数据;将权重参数数据的第L+1个数据点作为第一个数据点,再抽取长度为L的数据点,得到第二份数据;
以此类推,直到得到第k份数据;
再将每份数据的同一位置的数据顺序取出拼接成一组数据,最后得到ceil(N/L/k)组数据,并将其存储至存储器中;其中,ceil函数表示向上取整;
步骤4、将运算数据输入到CNN全连接层进行运算,其中,每次得到的卷积层运算结果与存储的一组权重参数数据进行乘累加计算,乘累加一次则计数一次;其中,在乘累加计算之前,先对卷积层运算结果进行判定:如果卷积层运算结果为0,不读取该卷积层运算结果对应的权重参数数据,即不进行乘累加计算,但乘法计算计数累计一次;如果卷积层运算结果不为0,读取计数值指向的权重参数数据的列数,卷积层运算结果与该组权重参数数据同时进行乘累加计算并进行累积一次计数,得到当前的k个乘累加计算结果,当乘累加计算计数次数达到L时,则表示此组k个全连接层计算完成,开始下一组全连接层计算,直到完成所有ceil(N/L/k)组数据的乘累加计算;完成全连接层运算后,将运算结果按制定好的数据帧格式连续输出。
2.如权利要求1所述的一种CNN全连接层运算的多并行加速方法,其特征在于,所述步骤1中,选取运算数据格式的方法为:
如果目标分类种类100以上且类型差异小的情况下,采用32位单精度浮点数据格式;
如果目标分类种类少于20类且类型差异大的情况下,采用18位浮点数据格式;
其它情况采用24位浮点数据格式。
3.如权利要求1所述的一种CNN全连接层运算的多并行加速方法,其特征在于,所述步骤2中,假设处理数据位宽为n,存储器位宽为m,则运算并行度最高不超过k=floor(m/n);其中,floor函数表示向下取整。
4.如权利要求1所述的一种CNN全连接层运算的多并行加速方法,其特征在于,N不能整除L和k时,在权重参数数据末尾补零直到刚好满足整除。
5.如权利要求1所述的一种CNN全连接层运算的多并行加速方法,其特征在于,所述乘累加计算采用浮点乘法器、浮点加法器和存储器完成;其中,所述存储器用来缓存处理数据,存储器的位宽由待处理的数据的数据格式和位宽决定,存储器的深度由浮点加法器的流水延时决定,浮点加法器最大的流水延时为13个时钟周期,存储器深度设计为16。
6.如权利要求1所述的一种CNN全连接层运算的多并行加速方法,其特征在于,所述步骤4中,将运算结果按制定好的数据帧格式连续输出的方法为:将k个并行计算得到的累加值按拼接的先后顺序串行输出,以用于后续确定目标类型和置信度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京空间飞行器总体设计部,未经北京空间飞行器总体设计部许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910818287.1/1.html,转载请声明来源钻瓜专利网。





