CN111414994A - 一种基于FPGA的Yolov3网络计算加速***及其加速方法 - Google Patents
一种基于FPGA的Yolov3网络计算加速***及其加速方法 Download PDFInfo
- Publication number
- CN111414994A CN111414994A CN202010150245.8A CN202010150245A CN111414994A CN 111414994 A CN111414994 A CN 111414994A CN 202010150245 A CN202010150245 A CN 202010150245A CN 111414994 A CN111414994 A CN 111414994A
- Authority
- CN
- China
- Prior art keywords
- data
- layer
- feature map
- fpga
- arm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
本发明是一种基于FPGA的Yolov3网络计算加速***及其加速方法。所述***包括ARM和FPGA平台架构、片外存储区、AXI_M接口和AXI_S接口,所述ARM平台架构包括核心处理器和数据和内存控制器,所述FPGA平台架构包括加速核心单元、输入缓存端和输出缓存端;所述核心处理器包括ARM Cortex‑A53CPU和L2缓存区,所述片外存储区包括SD卡和外部DDR4,所述加速核心单元包括数据矩阵向量阵列和计算模块。本发明输入和输出缓存端采用多通道并行读取写回的方式代替传统的单通道读写方式,最大化利用了Zynq芯片的带宽。输入缓存端设计双缓存区和寄存器阵列,实现高效的数据复用,成倍提高带宽。
Description
技术领域
本发明涉及Yolov3网络计算加速技术领域,是一种基于FPGA的Yolov3网络计算加速***及其加速方法。
背景技术
深度学习作为新一代计算模式,近年来在众多领域中发挥了重要作用。以卷积神经网络为代表的深度学习算法在计算机视觉领域中取得了重大突破,如图像分类、目标检测等具体应用。随着物联网时代的来临和边缘计算的兴起,未来社会的发展趋势是万物互联和万物感知,因此在嵌入式端部署深度学习算法具有重要的现实意义。
深度学习算法的特点是计算密集和存储密集,需要消耗大量的计算和存储资源。而嵌入式设备往往计算和存储资源受限。因此,深度学习需要更适应此类算法的新的底层硬件来加速计算过程,目前主流的方式是使用GPU、FPGA以及ASIC芯片。
GPU作为应对图像处理需求而出现的芯片,其海量数据并行运算的能力十分适合于深度学习训练,但GPU的局限性在于能效比较低且硬件结构固定。专用集成电路芯片(ASIC)由于其定制化的特点,是一种比GPU更高效的方法。但是其定制化也决定了它的可迁移性低,且其造价高昂,生产周期长。FPGA在GPU和ASIC中取得了权衡,很好的兼顾了处理速度、控制能力和能效比。一方面,FPGA是可编程重构的硬件,因此相比GPU有更强大的可调控能力;另一方面,与日增长的门资源和内存带宽使得它有更大的设计空间。更方便的是,FPGA还省去了ASIC方案中所需要的流片过程。目前,FPGA已成为当今主流的一种深度学习处理器。
YOLO系列的目标检测网络是目标检测领域中的极具代表性算法,在工业界得到了广泛应用。YOLOv3作为YOLO的最新一代检测方法,在性能上具有更加优异的表现,是当今业界的主流算法。但YOLOv3计算量较大,难以部署在嵌入式端,而目前的硬件加速器缺乏针对YOLOv3网络加速的***设计方案。因此,可结合YOLOv3网络特点,基于FPGA设计硬件加速***。
发明内容
本发明为实现对YOLOv3网络加速,本发明提供了一种基于FPGA的Yolov3网络计算加速***及其加速方法,本发明提供了以下技术方案:
一种基于FPGA的Yolov3网络计算加速***,所述***包括ARM和FPGA平台架构、片外存储区、AXI_M接口和AXI_S接口,所述ARM平台架构包括核心处理器和数据和内存控制器,所述FPGA平台架构包括加速核心单元、输入缓存端和输出缓存端;
所述核心处理器包括ARM Cortex-A53CPU和L2缓存区,所述片外存储区包括SD卡和外部DDR4,所述加速核心单元包括数据矩阵向量阵列和计算模块;
所述ARM Cortex-A53CPU连接L2缓存区,所述L2缓存区连接数据和内存控制器,所述数据和内存控制器连接片外存储区,所述数据和内存控制器AXI_M接口和AXI_S接口,所述AXI_S接口连接输入缓存端和输出缓存端,所述输入缓存端连接数据矩阵向量阵列,所述数据矩阵向量阵列连接计算模块,所述计算模块连接输出缓存端;所述AXI_M接口连接计算模块。
一种基于FPGA的Yolov3网络计算加速方法,包括以下步骤:
步骤1:根据YOLOv3网络结构,分配ARM和FPGA的计算任务,采用ARM作为主控制器,采用FPGA作为协处理器,ARM负责外部图像输入、图像预处理、NMS算法、叠加检测信息、图像输出任务,YOLOv3网络推理中的路由层和YOLO层;FPGA负责YOLOv3网络推理中的卷积层、捷径层和上采样层
步骤2:进行BN层与卷积层的融合,通过在权重文件中预先转换权值参数,实现卷积层和BN层的融合;
步骤3:对YOLOv3网络进行量化,将float32型数据量化为int16动定点数据;
步骤4:在ARM架构中和FPGA架构中,形成数据流,完成一次YOLOv3网络的目标检测;
步骤5:对特征图和权重数据进行切分,输出切分后的特征图和权重数据;
步骤6:输入缓存端缓存切分后的特征图和权重数据,采用多通道读取特征图和权重数据,实现读取乒乓过程;
步骤7:对卷积层、捷径层、上采样层进行加速计算,实现维度的展开;
步骤8:输出缓存端通过乒乓操作实现流水,交替将输出缓存的数据写回DDR4中;
步骤9:ARM负责路由层和YOLO层,ARM端在图像上叠加检测信息,通过外部接口将图像输出。
优选地,包括以下步骤:
步骤3.1:量化网络的权重数据,遍历每一个卷积层的权重数据,找出每一层权重数据的最值,遍历不同的阶码,在保证量化后的整数表示范围比权重数据分布大的前提下,找到每层最优的权重阶码,使原始权重与量化后的权重绝对误差和最小,根据最值确定16位动定点量化的小数点位置,确定小数部分的位长Q;将权重数据乘以比例系数2^Q,取整数数据即为int16动定点量化的结果;反量化的过程为int16型量化结果除以比例系数2^Q,得到反量化的浮点数结果;对网络的每一卷积层权重数据进行上述操作,最后形成该网络卷积层的量化权重数据;
步骤3.2:量化网络的特征图数据,准备校准数据集,数量为训练集数据的10%;遍历网络每一层的特征图输入数据,找出每一层输入特征图数据的最值,确定16位动定点量化的小数点位置,即确定小数部分的位长Q,对网络的每一层进行量化操作,确定每一层的量化小数位数Q,对校准数据集中的所有图片进行量化操作,对每一层的量化小数位数Q求均值,得出最后的网络输入特征图的量化小数位数Q。
优选地,所述步骤4具体为:
采用ARM读取输入图像,对图像数据进行预处理,处理后的图像存储在DDR4中,从片外Flash中读取模型结构文件,对网络模型进行解析,解析后的网络结构存储在DDR4中;从片外Flash中读取量化模型权重文件到DDR4中,完成模型加载过程,ARM对输入特征图进行量化操作,ARM通过AXI_S接口实现DDR4与FPGA片上BRAM存储区之间的数据传输;ARM读取每层的网络结构,通过AXI_S接口总线传输特征图和权重数据,计算结果经AXI_S接口写回DDR4内,经传输计算后,得出最后的结果特征图,在ARM端对结果进行解析、NMS算法和图像后处理操作,完成一次YOLOv3网络的目标检测。
优选地,所述步骤5具体为:包括以下步骤:
步骤5.1:对特征图数据进行切分,所述特征图数据为一个三维数据,维度分别为R、C、N;其中,R为特征图的高度、C为特征图的宽度、N为特征图的通道数,沿R、C、N三个维度对特征图进行切分,其中Tr为沿R维度切分后的长度,Tc为沿C维度切分后的长度,Tn为沿N维度切分后的长度,输出特征图的通道数为M,Tm为沿M维度切分后的长度;
步骤5.2:对权重数据进行切分,所述权重数据为一个四维数据,维度分别为K、K、M、N,其中,K为卷积核的高度、K为卷积核的宽度、N为输入特征图的通道数、M为输出特征图的通道数,沿M、N两个维度对特征图进行切分,其中Tm为沿M维度切分后的长度,Tn为沿N维度切分后的长度。
优选地,所述步骤6具体为:包括以下步骤:
步骤6.1:输入缓存端每次读取单块特征图数据,读取特征图沿N、C、R维度顺序,即读取完上一块特征图后,沿N维度读取下块特征图,当需要切换维度时,沿维度C移位,继续沿N维度进行读取,输入缓存端每次读取单块权重数据,读取权重数据沿M、N维度顺序;
步骤6.2:采用多通道读取的方法FPGA端通过4个AXI口读取权重数据和特征图数据,其中,读取单块特征图数据时,沿N通道对特征图进行4等分,每个接口一次读取Tr*Tc*Tn/4大小的特征图;
读取单块权重数据时,沿N通道对权重数据进行4等分,每个接口一次读取K*K*Tn/4*Tm大小的权重数据,单个输入特征图缓存区的大小为(Tr+K-1)*(Tc+k-1)*Tn*4字节,单个输入权重缓存区的大小为K*K*Tn*Tm*4字节;
步骤6.3:输入缓存端通过权重缓存区读取权重数据,输入缓存端4个读取口按照Tn维度对单块权重数据进行四等分,每个接口一次从DDR4中读取K*K*Tm*Tn/4大小权重数据,通过双缓存区的机制实现权重读取的乒乓过程。
优选地,所述步骤7具体为:包括以下步骤:
步骤7.1:对卷积层进行加速计算,卷积层实现加速的维度共有K、K、Tn、Tm,对Tm、Tn、K、K维度进行并行计算,计算模块的输入特征图存储在寄存器阵列中,权重数据存储在权重缓存区,对K、K、Tm和Tn维度的乘法运算进行全并行展开,沿Tn维度累加运算结果,运算结果通过加法树机制实现快速相加,单块特征图的计算结果累加到输出缓存端;
步骤7.2:对捷径层进行加速计算,捷径层为两张特征图的对位相加运算,沿Tm维度对运算进行并行展开,将第一次输入的数据加载到输出缓存端,读取第二张需要与之相加的特征图到输出缓存端,与输出缓存端存储的特征图对位相加,沿Tm维度并行展开,输出结果保存在输出缓存端;
步骤7.3:对上采样层进行加速计算,在YOLOv3网络中,计算模块的输入特征图存储在输入缓存端,计算模块沿输入通道维度重复读取Tn个数据,数据共重复读取两次,将Tn个数据按顺序存储至输出缓存端,计算过程实现Tn维度的展开,重复读取两次后读取下一区域的Tn数量的数据。
优选地,通过乒乓操作的方式实现流水,交替将输出缓存端的数据写回DDR4中,对计算卷积的结果进行写回时,对输出缓存端的值进行Leaky_RELU操作;最大化利用带宽,采用多通道写回的方法,FPGA端通过4个AXI口写回计算后的特征图数据,写回单块特征图数据时,沿通道维度对特征图进行4等分,每个接口一次写回Tr*Tc*Tm/4大小的特征图,单个输出特征图缓存区的大小为(Tr+K-1)*(Tc+k-1)*Tm*4字节。
优选地,所述步骤9具体为:包括以下步骤:
步骤9.1:ARM负责路由层和YOLO层;其中,路由操作将需要路由的层的计算结果在DDR4中保留,路由层对需要路由的层进行重新排序,实现路由操作;
步骤9.2:YOLO层是对输出的特征图进行LOGISTIC激活处理,通过遍历操作,对需要激活的值进行激活;YOLOv3网络共输出三个含有检测结果的特征图层,分别包含13*13*3、26*26*3、52*52*3个候选框信息,采用ARM对特征图层进行遍历,从特征图层中提取出目标候选框的检测信息,ARM对输出的候选框进行NMS操作;计算剩余候选框与当前最大置信度的候选框的IoU,去除IoU大于设定的阈值的候选框
步骤9.3:重复步骤9.1至步骤9.2,直至候选框为空,ARM在图像上叠加检测信息,通过外部接口将图像输出。
优选地,所述ARM对输出的候选框进行NMS操作具体为:NMS计算出每一个候选框的面积,然后根据置信度进行排序,把置信度最大的候选框放入队列中。
本发明具有以下有益效果:
本发明采用int16的动定点量化方法,可大幅节省计算和存储资源,在不影响检测结果的前提下,提高检测速度。
本发明输入缓存端和输出缓存端采用多通道并行读取写回的方式代替传统的单通道读写方式,最大化利用了Zynq芯片的带宽。
本发明的输入缓存端设计双缓存区和寄存器阵列,实现高效的数据复用,成倍提高带宽。卷积计算可以在多个维度并行展开,最高可实现K*K*Tm*Tn并行度的加速计算,较好摆脱带宽限制。这种设计方法针对通用卷积结构,不仅适用于YOLOv3网络。
本发明分析YOLOv3网络计算任务,对ARM和FPGA端合理分配计算任务,ARM端负责路由层和YOLO层,FPGA端负责卷积层、捷径层、上采样层,充分发挥ARM+FPGA异构平台的优势。FPGA计算模块整合卷积层、捷径层、上采样层三种类型操作,传统的FPGA加速器往往只加速卷积和全连接层,实现功能相比传统加速器更适合当今主流的网络结构且更为多样化。
附图说明
图1为一种基于FPGA的Yolov3网络计算加速***框架图;
图2为特征图和权重数据的分块方式图;
图3为FPGA工作时序图;
图4为多通道读写示意图图;
图5为输入缓存端寄存器阵列结构示意图;
图6为计算模块并行展开结构图。
具体实施方式
以下结合具体实施例,对本发明进行了详细说明。
具体实施例一:
根据图1所示,一种基于FPGA的Yolov3网络计算加速***,所述***包括ARM和FPGA平台架构、片外存储区、AXI_M接口和AXI_S接口,所述ARM平台架构包括核心处理器和数据和内存控制器,所述FPGA平台架构包括加速核心单元、输入缓存端和输出缓存端;
所述核心处理器包括ARM Cortex-A53CPU和L2缓存区,所述片外存储区包括SD卡和外部DDR4,所述加速核心单元包括数据矩阵向量阵列和计算模块;
所述ARM Cortex-A53CPU连接L2缓存区,所述L2缓存区连接数据和内存控制器,所述数据和内存控制器连接片外存储区,所述数据和内存控制器AXI_M接口和AXI_S接口,所述AXI_S接口连接输入缓存端和输出缓存端,所述输入缓存端连接数据矩阵向量阵列,所述数据矩阵向量阵列连接计算模块,所述计算模块连接输出缓存端;所述AXI_M接口连接计算模块。
在ARM+FPGA平台架构中,ARM为主控制器,FPGA为协处理器。ARM部分主要负责整体计算任务的调度和低计算量的任务,FPGA负责计算密集型任务。整体网络实现需要外部图像输入、图像预处理、YOLOv3网络推理、NMS算法和叠加检测信息、图像输出等任务,其中,YOLOv3网络共有卷积层、捷径层、上采样层、路由层、YOLO层等主体结构。本***设计方案中,ARM负责外部图像输入、图像预处理、NMS算法、叠加检测信息、图像输出任务,包括YOLOv3网络推理中的路由层、YOLO层。FPGA负责YOLOv3网络推理中的卷积层、捷径层、上采样层。
本发明提供一种基于FPGA的Yolov3网络计算加速方法,包括以下步骤:
步骤1:根据YOLOv3网络结构,分配ARM和FPGA的计算任务,采用ARM作为主控制器,采用FPGA作为协处理器,ARM负责外部图像输入、图像预处理、NMS算法、叠加检测信息、图像输出任务,YOLOv3网络推理中的路由层和YOLO层;FPGA负责YOLOv3网络推理中的卷积层、捷径层和上采样层
步骤2:为了加速计算速度,节省计算开销。进行BN层与卷积层的融合,通过在权重文件中预先转换权值参数,实现卷积层和BN层的融合;
权重转换公式为:
其中,Var[x]为running_var(滑动方差),E[x]为running_mean(滑动均值)。
步骤3:对YOLOv3网络进行量化,将float32型数据量化为int16动定点数据;
定点数xint16的表示公式为:
其中,ti∈{0,1},exp表示阶码,最高位为符号位。
量化网络的权重数据:遍历每一个卷积层的权重数据,找出每一层权重数据的最值。遍历不同的阶码,在保证量化后的整数表示范围比权重数据分布大的前提下,找到每层最优的权重阶码,使原始权重与量化后的权重绝对误差和最小。根据误差最小值确定16位动定点量化的小数点位置,确定小数部分的位长Q。将权重数据乘以比例系数2^Q,取整数数据即为int16动定点量化的结果。反量化的过程为int16型量化结果除以比例系数2^Q,即可得到反量化的浮点数结果。对网络的每一卷积层权重数据进行上述操作,最后形成该网络卷积层的量化权重数据。
量化网络的特征图数据:准备校准数据集,数量约为训练集数据的10%。遍历网络每一层的特征图输入数据,找出每一层输入特征图数据的最值,确定16位动定点量化的小数点位置,即确定小数部分的位长Q。对网络的每一层进行量化操作,确定每一层的量化小数位数Q。对校准数据集中的所有图片进行量化操作,对每一层的量化小数位数Q求均值,得出最后的网络输入特征图的量化小数位数Q。
(3)加速***的计算过程:YOLOv3算法流程在嵌入式端的实现以ARM为主处理器,FPGA为协处理器,DDR4作为主存储器,BRAM作为数据缓冲器。程序启动,在ARM部分中,读取输入图像,对图像数据进行预处理,处理后的图像存储在DDR4中。从片外Flash中读取模型结构文件,对网络模型进行解析,解析后的网络结构存储在DDR4中。从片外Flash中读取量化模型权重文件到DDR4中,完成模型加载过程。ARM端对输入特征图进行量化操作,通过AXI4接口实现DDR4与FPGA片上BRAM存储区之间的数据传输。ARM端读取每层的网络结构,通过AXI4总线传输特征图和权重数据,计算结果经AXI4写回DDR4内。YOLOv3网络共有106层,经106次传输计算后,得出最后的结果特征图,在ARM端对结果进行解析、NMS算法和图像后处理等操作。经上述过程,完成一次YOLOv3网络的目标检测功能。
步骤4:在ARM架构中和FPGA架构中,形成数据流,完成一次YOLOv3网络的目标检测;
YOLOv3算法流程在嵌入式端的实现以ARM为主处理器,FPGA为协处理器,DDR4作为主存储器,BRAM作为数据缓冲器。程序启动,在ARM部分中,读取输入图像,对图像数据进行预处理,处理后的图像存储在DDR4中。从片外Flash中读取模型结构文件,对网络模型进行解析,解析后的网络结构存储在DDR4中。从片外Flash中读取量化模型权重文件到DDR4中,完成模型加载过程。ARM端对输入特征图进行量化操作,通过AXI4接口实现DDR4与FPGA片上BRAM存储区之间的数据传输。ARM端读取每层的网络结构,通过AXI4总线传输特征图和权重数据,计算结果经AXI4写回DDR4内。YOLOv3网络共有106层,经106次传输计算后,得出最后的结果特征图,在ARM端对结果进行解析、NMS算法和图像后处理等操作。经上述过程,完成一次YOLOv3网络的目标检测功能。
步骤5:对特征图和权重数据进行切分,输出切分后的特征图和权重数据;
根据图2所示,对特征图进行切分:特征图为一个三维数据,维度分别为R、C、N。R为特征图的高度、C为特征图的宽度、N为特征图的通道数。沿R、C、N三个维度对特征图进行切分。其中Tr为沿R维度切分后的长度,Tc为沿C维度切分后的长度,Tn为沿N维度切分后的长度。输出特征图的通道数为M,Tm为沿M维度切分后的长度。在本发明中,Tr、Tc、Tm、Tn的数值设定为26、26、32、32。
根据图2所示,对权重数据进行切分:权重数据为一个四维数据,维度分别为K、K、M、N。K为卷积核的高度、K为卷积核的宽度、N为输入特征图的通道数、M为输出特征图的通道数。沿M、N两个维度对特征图进行切分。其中Tm为沿M维度切分后的长度,Tn为沿N维度切分后的长度。Tm和Tn的大小与特征图的中的参数一致,分别为32、32。
步骤6:输入缓存端缓存切分后的特征图和权重数据,采用多通道读取特征图和权重数据,实现读取乒乓过程;
卷积计算过程中单次运算加载单块特征图和权重数据,根据图3所示,FPGA的输入缓存端从DDR4中加载数据。输入缓存端为实现乒乓操作,设计两块缓存区,实现读取数据的流水。每块缓存区每次缓存切分后单块特征图和单块权重数据。输入缓存端每次读取单块特征图,读取特征图沿N、C、R维度顺序,即读取完上一块特征图后,沿N维度读取下块特征图,当需要切换维度时,沿维度C移位,继续沿N维度进行读取,R维度需要切换时同理。输入缓存端每次读取单块权重数据,读取权重数据沿M、N维度顺序。ZCU102共支持4个AXI_HP口,为了最大化利用带宽,根据图4所示,采用多通道读取的方法。FPGA端通过4个M_AXI口读取权重数据和特征图数据。其中,读取单块特征图数据时,沿N通道对特征图进行4等分,每个接口一次读取Tr*Tc*Tn/4大小的特征图。读取单块权重数据时,沿N通道对权重数据进行4等分,每个接口一次读取K*K*Tn/4*Tm大小的权重数据。单个输入特征图缓存区的大小为(Tr+K-1)*(Tc+k-1)*Tn*4字节,单个输入权重缓存区的大小为K*K*Tn*Tm*4字节。
具体地,根据图5所示,输入缓存端单次加载特征图数据的过程为:输入缓存端通过设计缓存区和寄存器阵列的方式对输入特征图数据进行数据复用和数据补零。输入缓存端每个接口一次读取Tr*Tc*Tn/4大小的特征图,其中每个接口对应一个缓存区。缓存区存储Tr*Tc*Tn/4大小的输入特征图,4个缓存区与一个寄存器阵列相连,寄存器阵列为((k-1)*(Tc+K-1)+K)*Tn大小的寄存器向量阵列。缓存区按顺序从DDR4中读取特征图,遇到边界时对缓存阵列填零以实现数据补零操作。可通过设置步长参数S进行不同步长的特征图输入,通过步长S参数确定每次读取的地址。以卷积核大小为3为例,寄存器阵列其对应单块特征图的2行又3列通道的数据寄存区,通道数为Tn。寄存器阵列按顺序从4个缓存区中读取数据,当寄存器阵列读满时,抛出最先读取的Tn大小的数据,对应区域的3*3*Tn大小的数据在计算模块中参与运算,3*3*Tn/4的数据构成为每一行的前三个通道数据。
具体地,输入缓存端单次加载权重数据的过程为:输入缓存端4个读取口按照Tn维度对单块权重数据进行四等分,每个接口一次从DDR4中读取K*K*Tm*Tn/4大小权重数据。通过双缓存区的机制实现权重读取的乒乓过程。
步骤7:对卷积层、捷径层、上采样层进行加速计算,实现维度的展开;
卷积计算过程如下:输入缓存端将单块特征图加载到输入特征图缓存区,权重数据加载到输入权重缓存区,参与卷积运算的数据加载到寄存器阵列。卷积层可实现加速的维度共有K、K、Tn、Tm,本方案基于ZCU102片上资源,对Tm、Tn维度进行并行计算,根据图6所示,Tm、Tn、K、K维度的并行展开度分别为32、32、3、3。对K、K、Tm和Tn维度的乘法运算进行全并行展开,沿Tn维度累加运算结果,运算结果通过加法树机制实现快速相加。通过多路选择器选择累加偏置或单块特征图的计算结果,实现计算结果的累加,结果存储在输出缓冲区内。每完成一次Tm*Tn并行展开的计算后,寄存器阵列读取下一轮输入,经过K*K*Tr*Tc轮并行运算后,完成本次计算过程。
卷积层并行展开加速伪代码如下式所示:
其中,unroll表示并行展开,卷积加速运算在Tm、Tn、K、K维度展开,实现四个维度的并行运算。
步骤8:输出缓存端通过乒乓操作实现流水,交替将输出缓存的数据写回DDR4中;
卷积计算过程中单次输出计算结果,过程如下:输出缓存端设计两块输出缓冲区,通过乒乓操作的方式实现流水,交替将输出缓存区的数据写回DDR4中。对计算卷积的结果进行写回时,对输出缓存区的值进行Leaky_RELU操作。为最大化利用带宽,采用多通道写回的方法。FPGA端通过4个M_AXI口写回计算后的特征图数据。写回单块特征图数据时,沿通道维度对特征图进行4等分,每个接口一次写回Tr*Tc*Tm/4大小的特征图。单个输出特征图缓存区的大小为(Tr+K-1)*(Tc+k-1)*Tm*4字节。
捷径层和上采样层操作与卷积层操作类似,其中输入输出缓存端相同,计算模块不同。具体地,步骤(4)中所描述的捷径层操作具体过程为:捷径层为两张特征图的对位相加运算,计算量较小,在本发明中,沿Tm维度对运算进行并行展开,Tm维度的并行展开度为16。计算模块的输入特征图存储在寄存器阵列中,捷径层运算无需加载权重数据,将第一次输入的数据加载到输出缓冲区,读取第二张需要与之相加的特征图到输入缓存区,与输出缓存区存储的特征图对位相加,沿Tm维度并行展开,输出结果保存在输出缓存区内。上采样层的实现方法如下:在YOLOv3网络中,上采样层一般为步长为2的上采样。计算模块的输入特征图存储在输入缓冲区,计算模块沿输入通道维度重复读取Tn个数据,数据共重复读取两次,将Tn个数据按顺序存储至输出缓冲区,计算过程实现Tn维度的展开,Tn维度的展开并行度为32,重复读取两次后读取下一区域的Tn数量的数据。
捷径层并行展开运算伪代码如下式所示:
其中,i表示捷径层输入特征图序号,unroll表示并行展开,捷径层加速运算在Tm进行展开,实现并行运算。
上采样层并行展开运算伪代码如下式所示:
其中,u表示上采样层的采样序号,unroll表示并行展开,上采样层加速运算在Tn进行展开,实现并行运算。步骤9:ARM负责路由层和YOLO层,ARM端在图像上叠加检测信息,通过外部接口将图像输出。
在YOLOv3网络前向推理的过程,ARM端负责路由层和YOLO层。其中,路由操作将需要路由的层的计算结果在DDR4中保留,路由层对需要路由的层进行重新排序,即可实现路由操作。YOLO层是对输出的特征图进行LOGISTIC激活处理,通过遍历操作,对需要激活的值进行激活。YOLOv3网络共输出三个含有检测结果的特征图层,分别包含13*13*3、26*26*3、52*52*3个候选框信息。ARM端对特征图层进行遍历,从特征图层中提取出目标候选框的检测信息。ARM端对输出的候选框进行NMS操作,具体地,NMS计算出每一个候选框的面积,然后根据置信度进行排序,把置信度最大的候选框放入队列中。接下来,计算其余候选框与当前最大置信度的候选框的IoU,去除IoU大于设定的阈值的候选框。然后重复上面的过程,直至候选框为空。ARM端在图像上叠加检测信息,通过外部接口将图像输出。
以上所述仅是一种基于FPGA的Yolov3网络计算加速***及其加速方法的优选实施方式,一种基于FPGA的Yolov3网络计算加速***及其加速方法的保护范围并不仅局限于上述实施例,凡属于该思路下的技术方案均属于本发明的保护范围。应当指出,对于本领域的技术人员来说,在不脱离本发明原理前提下的若干改进和变化,这些改进和变化也应视为本发明的保护范围。
Claims (10)
1.一种基于FPGA的Yolov3网络计算加速***,其特征是:所述***包括ARM和FPGA平台架构、片外存储区、AXI_M接口和AXI_S接口,所述ARM平台架构包括核心处理器和数据和内存控制器,所述FPGA平台架构包括加速核心单元、输入缓存端和输出缓存端;
所述核心处理器包括ARM Cortex-A53CPU和L2缓存区,所述片外存储区包括SD卡和外部DDR4,所述加速核心单元包括数据矩阵向量阵列和计算模块;
所述ARM Cortex-A53CPU连接L2缓存区,所述L2缓存区连接数据和内存控制器,所述数据和内存控制器连接片外存储区,所述数据和内存控制器AXI_M接口和AXI_S接口,所述AXI_S接口连接输入缓存端和输出缓存端,所述输入缓存端连接数据矩阵向量阵列,所述数据矩阵向量阵列连接计算模块,所述计算模块连接输出缓存端;所述AXI_M接口连接计算模块。
2.一种基于FPGA的Yolov3网络计算加速方法,所述方法基于如权利要求1所述的一种基于FPGA的Yolov3网络计算加速***,其特征是:包括以下步骤:
步骤1:根据YOLOv3网络结构,分配ARM和FPGA的计算任务,采用ARM作为主控制器,采用FPGA作为协处理器,ARM负责外部图像输入、图像预处理、NMS算法、叠加检测信息、图像输出任务,YOLOv3网络推理中的路由层和YOLO层;FPGA负责YOLOv3网络推理中的卷积层、捷径层和上采样层
步骤2:进行BN层与卷积层的融合,通过在权重文件中预先转换权值参数,实现卷积层和BN层的融合;
步骤3:对YOLOv3网络进行量化,将float32型数据量化为int16动定点数据;
步骤4:在ARM架构中和FPGA架构中,形成数据流,完成一次YOLOv3网络的目标检测;
步骤5:对特征图和权重数据进行切分,输出切分后的特征图和权重数据;
步骤6:输入缓存端缓存切分后的特征图和权重数据,采用多通道读取特征图和权重数据,实现读取乒乓过程;
步骤7:对卷积层、捷径层、上采样层进行加速计算,实现维度的展开;
步骤8:输出缓存端通过乒乓操作实现流水,交替将输出缓存的数据写回DDR4中;
步骤9:ARM负责路由层和YOLO层,ARM端在图像上叠加检测信息,通过外部接口将图像输出。
3.根据权利要求2所述的一种基于FPGA的Yolov3网络计算加速方法,其特征是:所述步骤3具体为:包括以下步骤:
步骤3.1:量化网络的权重数据,遍历每一个卷积层的权重数据,遍历不同的阶码,在保证量化后的整数表示范围比权重数据分布大的前提下,找到每层最优的权重阶码,使原始权重与量化后的权重绝对误差和最小,根据最值确定16位动定点量化的小数点位置,确定小数部分的位长Q;将权重数据乘以比例系数2^Q,取整数数据即为int16动定点量化的结果;反量化的过程为int16型量化结果除以比例系数2^Q,得到反量化的浮点数结果;对网络的每一卷积层权重数据进行上述操作,最后形成该网络卷积层的量化权重数据;
步骤3.2:量化网络的特征图数据,准备校准数据集,数量为训练集数据的10%;遍历网络每一层的特征图输入数据,找出每一层输入特征图数据的最值,确定16位动定点量化的小数点位置,即确定小数部分的位长Q,对网络的每一层进行量化操作,确定每一层的量化小数位数Q,对校准数据集中的所有图片进行量化操作,对每一层的量化小数位数Q求均值,得出最后的网络输入特征图的量化小数位数Q。
4.根据权利要求2所述的一种基于FPGA的Yolov3网络计算加速方法,其特征是:所述步骤4具体为:
采用ARM读取输入图像,对图像数据进行预处理,处理后的图像存储在DDR4中,从片外Flash中读取模型结构文件,对网络模型进行解析,解析后的网络结构存储在DDR4中;从片外Flash中读取量化模型权重文件到DDR4中,完成模型加载过程,ARM对输入特征图进行量化操作,ARM通过AXI_S接口实现DDR4与FPGA片上BRAM存储区之间的数据传输;ARM读取每层的网络结构,通过AXI_S接口总线传输特征图和权重数据,计算结果经AXI_S接口写回DDR4内,经传输计算后,得出最后的结果特征图,在ARM端对结果进行解析、NMS算法和图像后处理操作,完成一次YOLOv3网络的目标检测。
5.根据权利要求2所述的一种基于FPGA的Yolov3网络计算加速方法,其特征是:所述步骤5具体为:包括以下步骤:
步骤5.1:对特征图数据进行切分,所述特征图数据为一个三维数据,维度分别为R、C、N;其中,R为特征图的高度、C为特征图的宽度、N为特征图的通道数,沿R、C、N三个维度对特征图进行切分,其中Tr为沿R维度切分后的长度,Tc为沿C维度切分后的长度,Tn为沿N维度切分后的长度,输出特征图的通道数为M,Tm为沿M维度切分后的长度;
步骤5.2:对权重数据进行切分,所述权重数据为一个四维数据,维度分别为K、K、M、N,其中,K为卷积核的高度、K为卷积核的宽度、N为输入特征图的通道数、M为输出特征图的通道数,沿M、N两个维度对特征图进行切分,其中Tm为沿M维度切分后的长度,Tn为沿N维度切分后的长度。
6.根据权利要求2所述的一种基于FPGA的Yolov3网络计算加速方法,其特征是:所述步骤6具体为:包括以下步骤:
步骤6.1:输入缓存端每次读取单块特征图数据,读取特征图沿N、C、R维度顺序,即读取完上一块特征图后,沿N维度读取下块特征图,当需要切换维度时,沿维度C移位,继续沿N维度进行读取,输入缓存端每次读取单块权重数据,读取权重数据沿M、N维度顺序;
步骤6.2:采用多通道读取的方法FPGA端通过4个AXI口读取权重数据和特征图数据,其中,读取单块特征图数据时,沿N通道对特征图进行4等分,每个接口一次读取Tr*Tc*Tn/4大小的特征图;
读取单块权重数据时,沿N通道对权重数据进行4等分,每个接口一次读取K*K*Tn/4*Tm大小的权重数据,单个输入特征图缓存区的大小为(Tr+K-1)*(Tc+k-1)*Tn*4字节,单个输入权重缓存区的大小为K*K*Tn*Tm*4字节;
步骤6.3:输入缓存端通过权重缓存区读取权重数据,输入模块4个读取口按照Tn维度对单块权重数据进行四等分,每个接口一次从DDR4中读取K*K*Tm*Tn/4大小权重数据,通过双缓存区的机制实现权重读取的乒乓过程。
7.根据权利要求2所述的一种基于FPGA的Yolov3网络计算加速方法,其特征是:所述步骤7具体为:包括以下步骤:
步骤7.1:对卷积层进行加速计算,卷积层实现加速的维度共有K、K、Tn、Tm,对Tm、Tn、K、K维度进行并行计算,计算模块的输入特征图存储在寄存器阵列中,权重数据存储在权重缓存区,对K、K、Tm和Tn维度的乘法运算进行全并行展开,沿Tn维度累加运算结果,运算结果通过加法树机制实现快速相加,单块特征图的计算结果累加到输出缓存端;
步骤7.2:对捷径层进行加速计算,捷径层为两张特征图的对位相加运算,沿Tm维度对运算进行并行展开,将第一次输入的数据加载到输出缓存端,读取第二张需要与之相加的特征图到输出缓存端,与输出缓存端存储的特征图对位相加,沿Tm、Tn维度并行展开,输出结果保存在输出缓存端;
步骤7.3:对上采样层进行加速计算,在YOLOv3网络中,计算模块的输入特征图存储在输入缓存端,计算模块沿输入通道维度重复读取Tn个数据,数据共重复读取两次,将Tn个数据按顺序存储至输出缓存端,计算过程实现Tn维度的展开,重复读取两次后读取下一区域的Tn数量的数据。
8.根据权利要求2所述的一种基于FPGA的Yolov3网络计算加速方法,其特征是:通过乒乓操作的方式实现流水,交替将输出缓存端的数据写回DDR4中,对计算卷积的结果进行写回时,对输出缓存端的值进行Leaky_RELU操作;最大化利用带宽,采用多通道写回的方法,FPGA端通过4个AXI口写回计算后的特征图数据,写回单块特征图数据时,沿通道维度对特征图进行4等分,每个接口一次写回Tr*Tc*Tm/4大小的特征图,单个输出特征图缓存区的大小为(Tr+K-1)*(Tc+k-1)*Tm*4字节。
9.根据权利要求2所述的一种基于FPGA的Yolov3网络计算加速方法,其特征是:所述步骤9具体为:包括以下步骤:
步骤9.1:ARM负责路由层和YOLO层;其中,路由操作将需要路由的层的计算结果在DDR4中保留,路由层对需要路由的层进行重新排序,实现路由操作;
步骤9.2:YOLO层是对输出的特征图进行LOGISTIC激活处理,通过遍历操作,对需要激活的值进行激活;YOLOv3网络共输出三个含有检测结果的特征图层,分别包含13*13*3、26*26*3、52*52*3个候选框信息,采用ARM对特征图层进行遍历,从特征图层中提取出目标候选框的检测信息,ARM对输出的候选框进行NMS操作;计算剩余候选框与当前最大置信度的候选框的IoU,去除IoU大于设定的阈值的候选框
步骤9.3:重复步骤9.1至步骤9.2,直至候选框为空,ARM在图像上叠加检测信息,通过外部接口将图像输出。
10.根据权利要求9所述的一种基于FPGA的Yolov3网络计算加速方法,其特征是:所述ARM对输出的候选框进行NMS操作具体为:NMS计算出每一个候选框的面积,然后根据置信度进行排序,把置信度最大的候选框放入队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010150245.8A CN111414994B (zh) | 2020-03-03 | 2020-03-03 | 一种基于FPGA的Yolov3网络计算加速***及其加速方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010150245.8A CN111414994B (zh) | 2020-03-03 | 2020-03-03 | 一种基于FPGA的Yolov3网络计算加速***及其加速方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414994A true CN111414994A (zh) | 2020-07-14 |
CN111414994B CN111414994B (zh) | 2022-07-12 |
Family
ID=71490911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010150245.8A Active CN111414994B (zh) | 2020-03-03 | 2020-03-03 | 一种基于FPGA的Yolov3网络计算加速***及其加速方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414994B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770291A (zh) * | 2020-09-02 | 2020-10-13 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种处理方法及装置 |
CN112347857A (zh) * | 2020-10-14 | 2021-02-09 | 燕山大学 | 一种光学遥感卫星图像的舰船检测装置及方法 |
CN112911171A (zh) * | 2021-02-04 | 2021-06-04 | 上海航天控制技术研究所 | 一种基于加速处理的智能光电信息处理***及方法 |
CN112966729A (zh) * | 2021-02-26 | 2021-06-15 | 成都商汤科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN112990157A (zh) * | 2021-05-13 | 2021-06-18 | 南京广捷智能科技有限公司 | 一种基于fpga的图像目标识别加速*** |
CN113191491A (zh) * | 2021-03-16 | 2021-07-30 | 杭州慧芯达科技有限公司 | 多维度并行的人工智能处理器架构 |
CN113392973A (zh) * | 2021-06-25 | 2021-09-14 | 广东工业大学 | 一种基于fpga的ai芯片神经网络加速方法 |
CN113590529A (zh) * | 2021-07-16 | 2021-11-02 | 华中科技大学 | 一种cnn协处理器 |
CN114529797A (zh) * | 2022-01-25 | 2022-05-24 | 山东浪潮科学研究院有限公司 | 一种基于RISC-V的TinyML目标检测加速***、方法、存储介质 |
CN114662681A (zh) * | 2022-01-19 | 2022-06-24 | 北京工业大学 | 一种面向yolo算法可快速部署的通用硬件加速器***平台 |
CN117290279A (zh) * | 2023-11-24 | 2023-12-26 | 深存科技(无锡)有限公司 | 基于共享紧耦合的通用型计算加速器 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170322769A1 (en) * | 2016-05-03 | 2017-11-09 | Altera Corporation | Fixed-point and floating-point arithmetic operator circuits in specialized processing blocks |
CN108510000A (zh) * | 2018-03-30 | 2018-09-07 | 北京工商大学 | 复杂场景下行人细粒度属性的检测与识别方法 |
CN109598338A (zh) * | 2018-12-07 | 2019-04-09 | 东南大学 | 一种基于fpga的计算优化的卷积神经网络加速器 |
CN110020721A (zh) * | 2019-04-09 | 2019-07-16 | 武汉大学 | 一种基于参数压缩的目标检测深度学习网络优化方法 |
CN110738148A (zh) * | 2019-09-29 | 2020-01-31 | 浙江新再灵科技股份有限公司 | 基于异构平台的云端目标检测算法 |
CN110796239A (zh) * | 2019-10-30 | 2020-02-14 | 福州大学 | 一种通道与空间融合感知的深度学习目标检测方法 |
CN110852416A (zh) * | 2019-09-30 | 2020-02-28 | 成都恒创新星科技有限公司 | 基于低精度浮点数数据表现形式的cnn加速计算方法及*** |
-
2020
- 2020-03-03 CN CN202010150245.8A patent/CN111414994B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170322769A1 (en) * | 2016-05-03 | 2017-11-09 | Altera Corporation | Fixed-point and floating-point arithmetic operator circuits in specialized processing blocks |
CN108510000A (zh) * | 2018-03-30 | 2018-09-07 | 北京工商大学 | 复杂场景下行人细粒度属性的检测与识别方法 |
CN109598338A (zh) * | 2018-12-07 | 2019-04-09 | 东南大学 | 一种基于fpga的计算优化的卷积神经网络加速器 |
CN110020721A (zh) * | 2019-04-09 | 2019-07-16 | 武汉大学 | 一种基于参数压缩的目标检测深度学习网络优化方法 |
CN110738148A (zh) * | 2019-09-29 | 2020-01-31 | 浙江新再灵科技股份有限公司 | 基于异构平台的云端目标检测算法 |
CN110852416A (zh) * | 2019-09-30 | 2020-02-28 | 成都恒创新星科技有限公司 | 基于低精度浮点数数据表现形式的cnn加速计算方法及*** |
CN110796239A (zh) * | 2019-10-30 | 2020-02-14 | 福州大学 | 一种通道与空间融合感知的深度学习目标检测方法 |
Non-Patent Citations (3)
Title |
---|
Z.LV: ""Delay control system of Multi-Signal output based on FPGA and ARM9"", 《REVISTA DE LA FACULTAD DE INGENIERIA》 * |
吴晋: ""基于FPGA的目标检测算法加速与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
秦皓楠HOWARD_XDU: ""YOLOv3——引入:FPN+多尺度检测"", 《HTTPS://BLOG.CSDN.NET/GENTLEMAN_QIN/ARTICLE/DETAILS/84350496》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770291A (zh) * | 2020-09-02 | 2020-10-13 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种处理方法及装置 |
CN112347857A (zh) * | 2020-10-14 | 2021-02-09 | 燕山大学 | 一种光学遥感卫星图像的舰船检测装置及方法 |
CN112911171A (zh) * | 2021-02-04 | 2021-06-04 | 上海航天控制技术研究所 | 一种基于加速处理的智能光电信息处理***及方法 |
CN112966729B (zh) * | 2021-02-26 | 2023-01-31 | 成都商汤科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN112966729A (zh) * | 2021-02-26 | 2021-06-15 | 成都商汤科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN113191491A (zh) * | 2021-03-16 | 2021-07-30 | 杭州慧芯达科技有限公司 | 多维度并行的人工智能处理器架构 |
CN112990157A (zh) * | 2021-05-13 | 2021-06-18 | 南京广捷智能科技有限公司 | 一种基于fpga的图像目标识别加速*** |
CN112990157B (zh) * | 2021-05-13 | 2021-08-20 | 南京广捷智能科技有限公司 | 一种基于fpga的图像目标识别加速*** |
CN113392973A (zh) * | 2021-06-25 | 2021-09-14 | 广东工业大学 | 一种基于fpga的ai芯片神经网络加速方法 |
CN113392973B (zh) * | 2021-06-25 | 2023-01-13 | 广东工业大学 | 一种基于fpga的ai芯片神经网络加速方法 |
CN113590529A (zh) * | 2021-07-16 | 2021-11-02 | 华中科技大学 | 一种cnn协处理器 |
CN114662681A (zh) * | 2022-01-19 | 2022-06-24 | 北京工业大学 | 一种面向yolo算法可快速部署的通用硬件加速器***平台 |
CN114662681B (zh) * | 2022-01-19 | 2024-05-28 | 北京工业大学 | 一种面向yolo算法可快速部署的通用硬件加速器***平台 |
CN114529797A (zh) * | 2022-01-25 | 2022-05-24 | 山东浪潮科学研究院有限公司 | 一种基于RISC-V的TinyML目标检测加速***、方法、存储介质 |
CN114529797B (zh) * | 2022-01-25 | 2024-05-28 | 山东浪潮科学研究院有限公司 | 一种基于RISC-V的TinyML目标检测加速***、方法、存储介质 |
CN117290279A (zh) * | 2023-11-24 | 2023-12-26 | 深存科技(无锡)有限公司 | 基于共享紧耦合的通用型计算加速器 |
CN117290279B (zh) * | 2023-11-24 | 2024-01-26 | 深存科技(无锡)有限公司 | 基于共享紧耦合的通用型计算加速器 |
Also Published As
Publication number | Publication date |
---|---|
CN111414994B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111414994B (zh) | 一种基于FPGA的Yolov3网络计算加速***及其加速方法 | |
CN111459877B (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
CN110390385B (zh) | 一种基于bnrp的可配置并行通用卷积神经网络加速器 | |
CN108108809B (zh) | 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法 | |
US11775430B1 (en) | Memory access for multiple circuit components | |
CN110321997B (zh) | 高并行度计算平台、***及计算实现方法 | |
CN116541647A (zh) | 运算加速器、处理方法及相关设备 | |
CN113051216B (zh) | 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法 | |
CN111915001A (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN113222101A (zh) | 深度学习处理装置、方法、设备和存储介质 | |
CN112668708B (zh) | 一种提高数据利用率的卷积运算装置 | |
US20230025068A1 (en) | Hybrid machine learning architecture with neural processing unit and compute-in-memory processing elements | |
CN111563582A (zh) | 一种在fpga上实现及优化加速卷积神经网络的方法 | |
Shahshahani et al. | Memory optimization techniques for fpga based cnn implementations | |
CN113313244B (zh) | 面向加法网络的近存储神经网络加速器及其加速方法 | |
CN114003201A (zh) | 矩阵变换方法、装置及卷积神经网络加速器 | |
CN113743587A (zh) | 一种卷积神经网络池化计算方法、***、及存储介质 | |
CN113158132A (zh) | 一种基于非结构化稀疏的卷积神经网络加速*** | |
CN117391162A (zh) | 基于卷积神经网络的加速器及加速方法 | |
CN116822600A (zh) | 一种基于risc-v架构的神经网络搜索芯片 | |
CN113392963B (zh) | 基于fpga的cnn硬件加速***设计方法 | |
CN112001492B (zh) | 关于二值权重DenseNet模型的混合流水式加速架构及加速方法 | |
CN116090518A (zh) | 基于脉动运算阵列的特征图处理方法、装置以及存储介质 | |
CN115204373A (zh) | 一种卷积神经网络的快速卷积及缓存模式的设计方法 | |
CN115170381A (zh) | 一种基于深度学习的视觉slam加速***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |