[发明专利]一种面向YOLO算法可快速部署的通用硬件加速器系统平台在审
申请号: | 202210056834.9 | 申请日: | 2022-01-19 |
公开(公告)号: | CN114662681A | 公开(公告)日: | 2022-06-24 |
发明(设计)人: | 谢雪松;王明浩;张小玲;张亮 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/04;G06N3/08 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 yolo 算法 快速 部署 通用 硬件 加速器 系统 平台 | ||
1.一种面向YOLO算法可快速部署的通用硬件加速器系统平台,其特征在于该系统平台由ARM子系统、FPGA子系统和片外存储器构成,ARM子系统包括参数初始化模块、图像预处理模块、模型参数预处理模块、数据段地址分配模块、FPGA加速器驱动模块、图像后处理模块,系统启动后,参数初始化模块加载算法配置文件,对驱动结构体变量初始化,配置文件包含YOLO算法版本、模型各层算子类型、卷积核尺寸和个数、步长、激活函数类型、输入输出特征图量化Q值、层级ID和路由层的分组数、输入组ID、直连层ID算法信息,驱动结构体类型为Network和Layer,其中Network包含Layer结构体数组和网络层数结构体成员,Layer包含网络输入输出特征图尺寸和通道数、卷积核大小、算子类型、步长、激活函数类型、输入输出特征图量化Q值、权重偏移量、偏置偏移量、特征图分块系数、分组数、输入组ID和直连层ID结构体成员;图像预处理模块对任意分辨率的待检测图像进行读取,并对各像素点除以255转化到[0,1],按原图长宽比缩放至部署算法首层输入特征图的尺寸,保存在片外存储器中;模型参数预处理模块将权重和偏置数据加载到片外存储器中,将权重和偏置数据从32bit浮点数转化为16bit定点数,将归一化层融合到卷积层,并修改权重数据在内存中的排布顺序由{KW,KH,N,M}转换为{N,M,KW,KH},KW,KH,N,M分别为卷积核的宽、高、通道数和个数;数据段地址分配模块生成输入输出特征图存储数据段地址驱动值,当对FPGA子系统驱动时,若驱动的当前层为路由层,通过地址的分配不会进入FPGA子系统或者令开辟内存进行数据段拼接或者截取,而是直接通过此模块的数据段地址管理在各层输出到片外存储时就将路由层考虑进去,如路由层的计算是将A层的输出沿通道方向均分成两组,取第二组作为C层的输入,A层的输出特征图数据量为XA,输出存储数据段首地址为OutptrA_start,末地址为OutptrA_end=OutptrA_start+XA×2,C层的输入数据首地址需设为InptrC_start=OutptrA_end÷2,末地址设为InptrC_end=OutptrA_end,便可跳过此路由层,路由层计算是对D层和E层的输出特征图数据沿通道维度进行拼接,作为G层的输入,D层输出数据量为XD,D层输出存储数据段首地址为OutptrD_start,末地址为OutptrD_end=OutptrD_start+XD×2,E层输出数据量为XE,E层输出存储数据段首地址需设为OutptrE_start=OutptrD_end+2,末地址为OutptrE_end=OutptrE_start+XE×2,则G层的输入数据首地址需设为InptrG_start=OutptrD_start,末地址为InptrG_end=OutptrE_end,便可跳过此路由层,这样对存储地址的管理便可略去路由层的内存拷贝和复杂逻辑;根据算法的层ID号,FPGA加速器驱动模块循环对FPGA子系统进行驱动,执行算法的正向推理过程;FPGA子系统包括控制器模块、数据路由模块、输入输出缓存模块、YOLO算子模块,FPGA子系统被驱动后,由控制器模块控制,数据路由模块产生模型数据和输入特征图数据读取的地址偏移;输入输出缓存模块从片外存储器中读取输入分块数据后,将位宽为128bit数据接口的输入数据切分成8个16bit的数据,保存在的权重缓存与输入特征图缓存中;YOLO算子模块提供卷积、池化、上采样、重排序、shortcut算子,由控制模块的算子类型信号选择算子进行计算,其中卷积作为计算量最大的算子,对输入特征图通道、输出特征图通道和输出特征图的列方向3个维度进行并行计算,3个维度并行度{Pif,Pof,Pox}的选择根据各个卷积层特征图这3个维度的公因子进行选择,由得到,cd意为计算一组整数的公因子,In_Ni是第i层的输入特征图通道数,Out_Mi是第i层的输出特征图通道数,Out_Wi是第i层的输出特征图的宽,n为卷积层的层数,且需要满足DSPnumDSPdevice,其中DSPnum=Pif×Pof×Pox×Poy×Pkx×Pky,是卷积算子需要消耗的DSP资源数,DSPdevice是FPGA片上的DSP资源数,Poy、Pkx、Pky分别为输出特征图行方向、卷积核宽、卷积核高维度的并行度,Poy=Pkx=Pky=1;当得到最终的输出特征图数据后,由控制模块控制,数据路由模块产生输出地址偏移,输入输出缓存模块将8个位宽为16bit的输出数据进行拼接,组成一个完整的128bit位宽数据接口的输出数据,将输出缓存中的数据保存到片外存储器中;经FPGA加速器驱动模块执行结束后,由后处理模块对检测结果进行处理,得到最优的检测框,并保存检测图像。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210056834.9/1.html,转载请声明来源钻瓜专利网。