针对卷积神经网络硬件加速器的调试模块制造技术

技术编号:18290033 阅读:46 留言:0更新日期:2018-06-24 04:58
本发明专利技术公开了一种针对卷积神经网络硬件加速器的调试模块,目的是增大定位准确性和降低调试难度。本发明专利技术由DRAM即动态随机存取存储器、FIFO即先进先出队列、读DRAM计数模块、写DRAM计数模块和数据对齐模块组成;写DRAM计数模块和读DRAM计数模块均是二进制计数器,DRAM是拥有写端口和读端口的双端口DRAM;数据对齐模块对读DRAM数据进行拼接和补零操作,得到写FIFO数据;FIFO是读写异步FIFO。DRAM的数据位宽和深度根据所需观测数据信号的位宽和数量设置,FIFO的数据位宽根据DDR的数据位宽设置,数据深度根据写FIFO数据的数量设置。本发明专利技术能够更加准确方便地定位问题位置,既增大定位准确性又降低调试难度。

【技术实现步骤摘要】
针对卷积神经网络硬件加速器的调试模块
本专利技术涉及计算机领域的硬件加速器调试模块,尤其指一种针对卷积神经网络的硬件加速器调试模块。
技术介绍
卷积神经网络CNN(ConvolutionalNeuralNetworks)受神经科学研究的启发,经过长达20多年的演变,CNN在计算机视觉、人工智能领域越来越突出。CNN已经广泛用于图像识别,因为它能模仿生物视觉神经的行为获得很高识别准确率。一个典型CNN由两部分组成:特征提取器和分类器。特征提取器过滤输入图像,产生表示图像不同特征(这些特征可能包括拐角,线,圆弧等,对位置和形变不敏感)的低维向量。向量送入分类器(通常基于传统的人工神经网络),得到向量对应的输入图像属于某个类别(不同的分类任务有不同的类型集合,如人脸识别任务中,每个人都代表一个类别)的可能性。CNN作为一种前馈网络结构,网络层之间具有高度的独立性:各层网络计算独立,层间无数据反馈。因此,CNN是一种高度并行的网络结构。但通用处理器的为执行逻辑处理和事务处理而优化的特性并不适合用来挖掘CNN的并行性,基于软件方式的CNN神经网络在实时性和功耗方面都不能满足应用的需求。为了充分挖掘卷积神经网络固有的并行性,越来越多的研究者开始采用现场可编程门阵列FPGA(FieldProgrammableGateArray)开发基于CNN神经网络的应用。FPGA作为一种可编程器件,具有计算资源丰富、灵活可配、开发周期短、高性能等优点。目前广泛采用的FPGA设计的CNN加速器(即卷积神经网络硬件加速器)的结构如图1所示,整个加速器主要由四个部分组成,PCIE(PeripheralComponentInterconnectExpress,高速串行计算机扩展总线标准)接口、DDR(DoubleDataRate,双倍速率同步动态随机存储器)模块、传输控制模块和CNN模块。PCIE接口与上位机(用于给CNN加速器发送指令和数据并进行观测的计算机)、DDR模块、传输控制模块相连。PCIE接口接收来自上位机的原始数据(图像数据与CNN网络权值数据),通过DMA(DirectMemoryAccess,直接内存存取)方式将原始数据写入DDR模块中。PCIE接口接收来自上位机的启动信号,将启动信号发送给传输控制模块。在计算结束后,PCIE接口接收来自传输控制模块的结束信号,并通过DMA方式从DDR模块中读取计算结果,再将结束信号和计算结果传输给上位机。DDR模块与PCIE接口、传输控制模块相连。DDR模块接收来自PCIE接口的原始数据,将原始数据分批传输给传输控制模块。DDR模块接收来自传输控制模块的计算结果,将计算结果传输给PCIE接口。传输控制模块与PCIE接口、DDR模块、CNN模块相连。传输控制模块接收来自DDR模块的原始数据,将原始数据传输给CNN模块;传输控制模块接收来自PCIE模块的启动信号,启动CNN模块的计算;在CNN模块计算完成之后,传输控制模块接收来自CNN模块的计算结果,将计算结果传输给DDR模块,并将结束信号传输给PCIE接口。另外,传输控制模块有一个用于调试的调试接口。CNN模块与传输控制模块相连。CNN模块接收来自传输控制模块的原始数据,使用原始数据进行计算,并将计算结果传回传输控制模块。由卷积神经网络加速器的结构可知,基于FPGA的CNN硬件加速结构复杂,信号繁多,且最大数据位宽高达512比特,一旦出现问题调试起来非常麻烦。传统的加探针的调试方法,所能采样的信号的位数是有限的,一般在1000到2000比特,因此高达512比特的数据位宽,会导致最多只能采样两三个数据。同时采样窗口大小也是有限的,一般只能采样1024-2048个周期,而整体计算需要上百万周期,如果加探针的观测数据的位宽太大,或者是有观测数据在关键路径上,都会引起整个系统的延迟变大,进而导致程序运行错误,所得到的波形图也会出错,导致难以定位错误位置,因此仅仅依靠探针已经不能满足调试需要。
技术实现思路
本专利技术要解决的技术问题是提供一种针对卷积神经网络硬件加速器的调试模块,一方面增大定位准确性,一方面降低调试难度。本专利技术搭建在传输控制模块和DDR模块之间,如图2所示。它的主要工作是从传输控制模块的调试接口接收观测数据,并保存起来,在全部的计算过程完成之后,再将保存的观测数据写入DDR模块中。其中观测数据可以是任何用户想要获得的数据,可以是输入的图片数据、CNN网络的权值、计算的中间结果等等。根据之前的描述,这样上位机就能通过PCIE接口从DDR模块读取这一部分观测数据,进行进一步的检验。本专利技术由DRAM(DynamicRandomAccessMemory,动态随机存取存储器)、FIFO(FirstInputFirstOutput,先进先出队列)、读DRAM计数模块、写DRAM计数模块和数据对齐模块组成。本专利技术可采用现场可编程门阵列FPGA设计。FIFO是一个读写异步FIFO,其空信号可表明FIFO是否为空,FIFO为空时空信号有效,FIFO不为空时空信号无效,用于沟通调试模块与DDR模块间不同的时钟域。FIFO的数据位宽等于DDR模块的数据位宽,FIFO的深度等于写FIFO数据的数量,保证FIFO不会溢出。FIFO与数据对齐模块、读DRAM计数模块、DDR模块相连,它从读DRAM计数模块接收写FIFO数据有效信号(即读DRAM数据有效信号),从数据对齐模块接收写FIFO数据,当写FIFO数据有效信号有效时,将写FIFO数据写入FIFO中。FIFO的空信号经过一个非门连接在FIFO的读使能信号端上,当FIFO不为空即空信号无效时,读使能信号有效,此时置读FIFO数据有效信号为有效,并向DDR模块传输读FIFO数据。采用本专利技术对卷积神经网络硬件加速器进行调试的方法是:第一步,选取CNN加速器传输控制模块的观测数据。CNN模块计算过程中的数据都能从传输控制模块中获取,因此只需将想要观测的数据连接至传输控制模块的调试接口即可。第二步,将调试模块的写DRAM数据有效信号线与CNN加速器传输控制模块的调试接口相连以获取观测数据,将调试模块的计算完成信号线与传输控制模块中的计算完成信号相连。第三步,根据观测数据的位宽以及数量,配置读DRAM计数模块和写DRAM计数模块的计数上限值和计数位宽、DRAM和FIFO的数据位宽和深度。第四步,根据第三步配置的读DRAM数据位宽和FIFO数据位宽,配置数据对齐模块的拼接参数m和补零参数w。第五步,将FIFO的读FIFO数据线、读FIFO数据有效信号线与DDR模块相连。第六步,上位机通过PCIE接口发送启动信号,CNN加速器开始运算,调试模块的写地址信号和读地址信号均初始化为0。第七步,当写DRAM数据有效信号有效时,写DRAM计数模块进行计数,对写地址信号进行加一,并置写使能信号、第一使能信号有效,控制写DRAM数据(即调试模块获得的观测数据)写入DRAM中。第八步,当计算完成信号有效时,读DRAM计数模块开始计数,置第二使能信号为有效,对读地址信号进行加一,向数据对齐模块传输读DRAM数据,同时,置读DRAM数据有效信号有效。第九步,数据对齐模块根据拼接参数m和补零参数w,对读DRAM数据进行拼接补零,得到本文档来自技高网
...
针对卷积神经网络硬件加速器的调试模块

【技术保护点】
1.一种针对卷积神经网络硬件加速器的调试模块,其特征在于针对卷积神经网络硬件加速器的调试模块由DRAM即动态随机存取存储器、FIFO即先进先出队列、读DRAM计数模块、写DRAM计数模块和数据对齐模块组成;写DRAM计数模块是一个二进制计数器,写DRAM计数模块与传输控制模块、DRAM相连,它从传输控制模块接收写DRAM数据有效信号,当写DRAM数据有效信号有效时,写DRAM计数模块对写地址信号进行加一,并置写使能信号、第一使能信号有效,将写地址信号、写是能信号和第一使能信号发送给DRAM;所述传输控制模块为被调试的卷积神经网络硬件加速器中的传输控制模块;DRAM是一个双端口DRAM,拥有一个写端口和一个读端口;DRAM与传输控制模块、写DRAM计数模块、读DRAM计数模块以及数据对齐模块相连;DRAM从传输控制模块接收写DRAM数据,从写DRAM计数模块接收写地址信号、写使能信号、第一使能信号,当写使能信号和第一使能信号都有效时,DRAM将写DRAM数据写入写地址信号对应的地址中;DRAM从读DRAM计数模块接收第二使能信号、读地址信号,当第二使能信号有效时,DRAM将读地址信号对应地址中的数据传输到数据对齐模块;DRAM数据位宽和深度根据观测数据信号的位宽和数量设置;读DRAM计数模块是一个二进制计数器,读DRAM计数模块与传输控制模块、DRAM、FIFO相连,它从传输控制模块接收计算完成信号,向DRAM传输读地址信号和第二使能信号,向FIFO传输读DRAM数据有效信号;当计算完成信号有效时,置第二使能信号为有效,对读地址信号进行加一并传给DRAM,同时,置读DRAM数据有效信号有效,并将读DRAM数据有效信号发送给FIFO,读DRAM数据有效信号也叫写FIFO数据有效信号;数据对齐模块与DRAM、FIFO相连,接收来自DRAM的读DRAM数据,对读DRAM数据进行拼接和补零操作,得到写FIFO数据,向FIFO传输写FIFO数据;数据对齐模块将m个读DRAM数据首尾依次相连,并在后面补充w个0得到写FIFO数据,...

【技术特征摘要】
1.一种针对卷积神经网络硬件加速器的调试模块,其特征在于针对卷积神经网络硬件加速器的调试模块由DRAM即动态随机存取存储器、FIFO即先进先出队列、读DRAM计数模块、写DRAM计数模块和数据对齐模块组成;写DRAM计数模块是一个二进制计数器,写DRAM计数模块与传输控制模块、DRAM相连,它从传输控制模块接收写DRAM数据有效信号,当写DRAM数据有效信号有效时,写DRAM计数模块对写地址信号进行加一,并置写使能信号、第一使能信号有效,将写地址信号、写是能信号和第一使能信号发送给DRAM;所述传输控制模块为被调试的卷积神经网络硬件加速器中的传输控制模块;DRAM是一个双端口DRAM,拥有一个写端口和一个读端口;DRAM与传输控制模块、写DRAM计数模块、读DRAM计数模块以及数据对齐模块相连;DRAM从传输控制模块接收写DRAM数据,从写DRAM计数模块接收写地址信号、写使能信号、第一使能信号,当写使能信号和第一使能信号都有效时,DRAM将写DRAM数据写入写地址信号对应的地址中;DRAM从读DRAM计数模块接收第二使能信号、读地址信号,当第二使能信号有效时,DRAM将读地址信号对应地址中的数据传输到数据对齐模块;DRAM数据位宽和深度根据观测数据信号的位宽和数量设置;读DRAM计数模块是一个二进制计数器,读DRAM计数模块与传输控制模块、DRAM、FIFO相连,它从传输控制模块接收计算完成信号,向DRAM传输读地址信号和第二使能信号,向FIFO传输读DRAM数据有效信号;当计算完成信号有效时,置第二使能信号为有效,对读地址信号进行加一并传给DRAM,同时,置读DRAM数据有效信号有效,并将读DRAM数据有效信号发送给FIFO,读DRAM数据有效信号也叫写FIFO数据有效信号;数据对齐模块与DRAM、FIFO相连,接收来自DRAM的读DRAM数据,对读DRAM数据进行拼接和补零操作,得到写FIFO数据,向FIFO传输写FIFO数据;数据对齐模块将m个读DRAM数据首尾依次相连,并在后面补充w个0得到写FIFO数据,mod表示取余操作;m和w均为正整数;FIFO是一个读写异步FIFO,其空信号表明FIFO是否为...

【专利技术属性】
技术研发人员:黄松璞姜晶菲窦勇许金伟
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南,43

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

1