CN109858621A - 一种卷积神经网络加速器的调试装置、方法及存储介质 - Google Patents
一种卷积神经网络加速器的调试装置、方法及存储介质 Download PDFInfo
- Publication number
- CN109858621A CN109858621A CN201910019434.9A CN201910019434A CN109858621A CN 109858621 A CN109858621 A CN 109858621A CN 201910019434 A CN201910019434 A CN 201910019434A CN 109858621 A CN109858621 A CN 109858621A
- Authority
- CN
- China
- Prior art keywords
- module
- calculated
- convolutional neural
- neural networks
- host computer
- 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
Landscapes
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Abstract
本发明实施例涉及深度学习技术领域,公开了一种卷积神经网络加速器的调试装置、方法及存储介质。本发明中卷积神经网络加速器的调试装置,包括:第一传输模块、算法模块、外部存储控制模块和外部存储模块;外部存储控制模块根据上位机发送的数据写入信息,控制外部存储模块存储待计算参数;外部存储控制模块根据算法模块发送的数据读取信息,从外部存储模块中读取待计算参数,并将待计算参数通过第一传输模块传输至算法模块;算法模块根据计算指令和读取的待计算参数,确定计算结果,并将预设数量的计算结果通过第一传输模块返回至上位机。本实施方式,加快了卷积神经网络算法的速度,同时提高了对卷积神经网络算法的调试效率。
Description
技术领域
本发明实施例涉及深度学习技术领域,特别涉及一种卷积神经网络加速器的调试装置、方法及存储介质。
背景技术
卷积神经网络(Convolutional Neural Networks,简称“CNN”)源于人工神经网络,是利用卷积操作作为模拟神经元的感受。卷积神经网络的计算量非常巨大,需要存储数百万甚至近亿的参数,因此利用卷积神经网络进行实时检测识别只能依靠高性能多核CPU(Central Processing Unit,中央处理器)和GPU(Graphic Processing Unit,图形处理器)来完成,但GPU成本高、功耗大,大大限制了该卷积神经网络模型的应用范围。因此,使用通用器件,构建专用加速电路来满足卷积神经网路计算及存储需求是一条可行之路。目前,除了GPU以外,主流的加速硬件有FPGA、ASIC(Application Specific Integrated Circuit,专用集成电路)。ASIC虽然具有高性能低功耗的优点,但其需要根据具体的应用而进行专用设计,设计灵活性低且前期开发成本高。而FPGA作为适用不同功能的可编程标准器件,没有如此高额的研发成本,并且具有一定的灵活性。另外FPGA小巧灵活,功耗低,并行性等优点十分适合神经网络任务,因此将FPGA应用于移动工作平台来实现卷积神经网络的卷积计算是有效的解决方案。
基于FPGA的卷积神经网络加速器在实际应用之前,需要进行程序的调试,以减少该卷积神经网络加速器出现错误的概率,下面介绍程序调试的过程:将大量的待计算参数输入该卷积神经网络加速器中,该卷积神经网络加速器将计算结果返回至该上位机,通常由上位机根据返回的计算结果判断是否存在错误,由工程师对程序进行调试,例如,修改程序代码,重新进行编译。
发明人发现现有技术中至少存在如下问题:由于卷积神经网络算法的计算量大,目前基于FPGA的卷积神经网络加速器在进行调试的过程中,卷积神经网络计算过程会消耗大量FPGA的存储资源,降低了FPGA的处理速度,同时在程序调试阶段,当修改程序重新进行编译时,往往需要1~2个小时,或者更长的调试时间;这导致对程序调试的不便,也降低了调试的效率。
发明内容
本发明实施方式的目的在于提供一种卷积神经网络加速器的调试装置、方法及存储介质,使得加快了卷积神经网络算法的速度,同时提高了对卷积神经网络算法的调试效率。
为解决上述技术问题,本发明的实施方式提供了一种卷积神经网络加速器的调试装置,包括:第一传输模块、算法模块、外部存储控制模块和外部存储模块,其中,第一传输模块分别与算法模块和外部存储控制模块连接,外部存储控制模块与外部存储模块连接;外部存储控制模块根据上位机发送的数据写入信息,控制外部存储模块存储待计算参数,数据写入信息包括待计算参数和存储地址;外部存储控制模块根据算法模块发送的数据读取信息,从外部存储模块中读取待计算参数,并将待计算参数通过第一传输模块传输至算法模块;算法模块根据计算指令和读取的待计算参数,确定计算结果,并将预设数量的计算结果通过第一传输模块返回至上位机。
本发明的实施方式还提供了一种卷积神经网络加速器的调试方法,包括:应用于卷积神经网络加速器的调试装置,包括:根据上位机发送的数据写入信息,控制外部存储模块存储待计算参数,数据写入信息包括待计算参数和存储地址;根据数据读取信息,从外部存储模块中读取待计算参数;根据计算指令和读取的待计算参数,确定计算结果,并将预设数量的计算结果返回至上位机。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述卷积神经网络加速器的调试方法。
本发明实施方式相对于现有技术而言,该卷积神经网络加速器的调整装置的外部存储控制模块根据数据写入信息,将待计算参数全部存储在外部存储模块中,在算法模块对待计算参数进行计算的过程中,即可根据算法模块发送的数据读取信息,从外部存储模块中获取待计算参数,且可以在将计算结果按照预设数量返回至上位机,从而使得算法模块无需将确定的计算结果存储在该卷积神经网络加速器的调整装置内的存储区中,由于无需占用该调整装置内的存储资源,从而提高计算的速度;另外,由于计算结果按照预设数量上传至上位机,例如,若预设数量为1个计算结果,则相当于实时上传计算结果,使得上位机可以实时获取计算结果,使得上位机可以随时获取需要的计算结果,无需在所有待机算参数完成计算后,获取计算结果,加快了获取计算结果的速度,进一步缩短了调试的时间,同时,由于可以实时获取计算结果,以便在计算结果发生错误后,可以加快确定发生错误的位置,提高了对卷积神经网络算法的调试效率。
另外,卷积神经网络加速器的调试装置还包括第二传输模块和寄存器,其中,第二传输模块分别与第一传输模块和寄存器连接,寄存器与算法模块连接;第一传输模块和第二传输模块传输上位机发送的运行控制信息;寄存器获取上位机发送的运行控制信息,并在响应算法模块的获取请求的情况下,将运行控制信息传输至算法模块,其中,运行控制信息用于指示算法模块计算待计算参数;算法模块根据运行控制信息,确定计算指令。通过第一传输模块和第二传输模块,寄存器可以获取到上位机发送的运行控制信息,该寄存器存储该运行控制信息,在算法模块需要进行计算的情况下,通过获取请求,获取寄存器中的运行控制信息,缩短了获取该运行控制信息的速度,同时,由于卷积神经网络有多个卷积层,通过该运行控制信息可以控制算法模块控制每层的卷积层的开开启或关闭,使得在调试过程中,可以灵活控制每层卷积算法的运行情况,便于程序的调试。
另外,寄存器还用于存储运行状态,并在接收到上位机的获取指令的情况下,将运行状态通过第二传输模块上报至上位机,其中,运行状态由算法模块根据计算结果确定,运行状态用于指示当前卷积神经网络加速器的调试装置运行的进度。由于运行状态用于指示当前卷积神经网络加速器的调试装置运行进度,通过寄存器存储运行状态,使得上位机可以获取到该调试装置的运行进度,同时,该寄存器还存储有运行控制信息,通过运行控制信息和运行状态配合使用,即可控制程序在指定的运行状态运行,而无需运行所有的程序,从而缩短了调试的速度,也提高了调试的灵活性。
另外,第一传输模块包括:相互连接的第一转换模块和连接模块,第一转换模块与上位机连接,连接模块分别与算法模块和外部存储控制模块连接;第一转换模块用于将数据写入信息或计算结果的数据格式在第一数据格式和第二数据格式之间转换,第一数据格式为上位机的数据格式,第二数据格式为外部存储模块的数据格式;连接模块用于连通第一转换模块、算法模块和外部存储控制模块。通过第一转换模块实现对上位机的数据格式和外部存储模块的数据格式的相互转换,进而保证了该上位机与外部存储模块之间的数据通信。
另外,第二传输模块具体用于将运行控制信息或运行状态的数据格式在第二数据格式和第三数据格式之间相互转换,第二数据格式为外部存储模块的数据格式,第三数据格式为寄存器的数据格式。通过第二传输模块和第一传输模块的配合,确保了上位机和寄存器之间的正常通信。
另外,外部存储控制模块具体用于:在响应上位机发送的数据写入请求的情况下,接收数据写入信息,根据数据写入信息中的存储地址,将待计算参数存储至外部存储模块中;或者,在响应算法模块发送的读取请求的情况下,接收数据读取信息,并根据数据读取信息,从外部存储模块中读取待计算参数,数据读取信息包括读取地址。通过外部存储控制模块可以灵活的从外部存储模块中存储或读取待计算参数。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式提供的一种卷积神经网络加速器的调试装置的具体结构示意图;
图2是根据本发明第一实施方式提供的另一种卷积神经网络加速器的调试装置的具体结构示意图;
图3是根据本发明第二实施方式提供的一种卷积神经网络加速器的调试装置的具体结构示意图;
图4是根据本发明第三实施方式提供的一种卷积神经网络加速器的调试方法的具体流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种卷积神经网络加速器的调试装置。该卷积神经网络加速器的调制装置用于对卷积神经网络加速器进行程序调试,该卷积神经网络加速器的调试装置与上位机连接,上位机向该卷积神经网络加速器的调试装置发送待计算参数,该卷积神经网络加速器的调试装置接收该待计算参数,并对该待计算参数进行计算,上位机根据得到的计算结果,判断是否存在运行错误,以便工程师进行调试。其中,上位机可以是个人电脑、服务器等。该卷积神经网络加速器的调试装置10,包括:第一传输模块101、算法模块102、外部存储控制模块103和外部存储模块104,其中,第一传输模块101分别与算法模块102和外部存储控制模块103连接,外部存储控制模块103与外部存储模块104连接。具体的结构如图1所示。
外部存储控制模块103根据上位机20发送的数据写入信息,控制外部存储模块104存储待计算参数,数据写入信息包括待计算参数和存储地址;外部存储控制模块103根据算法模块102发送的数据读取信息,从外部存储模块104中读取待计算参数,并将待计算参数通过第一传输模块101传输至算法模块102;算法模块102根据计算指令和读取的待计算参数,确定计算结果,并将预设数量的计算结果通过第一传输模101块返回至上位机20。
具体的说,本实施方式中卷积神经网络加速器的调试装置是基于FPGA芯片设置的,通常包括FPGA芯片和外部存储模块,在本实施方式中,第一传输模块101、算法模块102以及外部存储控制模块103均设置在FPGA芯片上,外部存储模块104可以为双倍数据速率同步动态随机存储器(Double Data Rate SDRAM,简称“DDR”),可以理解的是,由于卷积神经网络的算法需要大量的计算数据,为了确保调试程序的速度,可以选用2G以上存储容量的DDR。如图1所示,上位机20与该第一传输模块101连接,上位机20通过第一传输模块101和外部存储控制模块103,且外部存储控制模块103与外部存储模块104连接,从而实现上位机20与外部存储模块104之间的通信,同时,上位机20通过第一传输模块101,实现与算法模块102之间的通信。
一个具体的实现中,该第一传输模块101包括:相互连接的第一转换模块1011和连接模块1012,第一转换模块1011与上位机20连接,连接模块1012分别与算法模块102和外部存储控制模块103连接,具体的结构如图2所示。第一转换模块1012用于将数据写入信息或计算结果的数据格式在第一数据格式和第二数据格式之间转换,第一数据格式为上位机20的数据格式,第二数据格式为外部存储模块104的数据格式;连接模块1012用于连通第一转换模块1011、算法模块102和外部存储控制模块103。其中,连接模块1012采用高级可扩展接口4(简称“AXI4”)协议。
具体的说,若采用高速串行计算机扩展总线标准(peripheral componentinterconnect express,简称“PCIe”)总线连接上位机20和第一转换模块1011,则第一数据格式为PCIe总线所支持的格式,第二数据格式为外部存储模块104所支持的数据格式,若外部存储模块104选择DDR,该DDR支持AXI4协议所支持的数据格式。其中,AXI4协议是一种通信协议,用于在多个主接口时,提高每个接口互连性能和利用率。本实施方式中连接模块1012采用AXI4协议,则连接模块1012与算法模块102、连接模块1012与第一转换模块1011、连接模块1012与外部存储控制模块103之间均采用AXI4协议进行通信,当然,该连接模块1012还可以采用其他的通信协议,本实施方式不对连接模块1012的通信协议做限制,可以根据实际需求进行选择。第一转换模块1011可以为FPGA芯片中的Xing分布式媒体结构(简称“xdma”)模块,该xdma模块可以将PCIe总线传输的数据映射到AXI4总线上面,从而实现上位机20直接对AXI4总线进行读写操作,而无需关注PCIe协议。
一个具体实现中,外部存储控制模块103在响应上位机20发送的数据写入请求的情况下,接收数据写入信息,根据数据写入信息中的存储地址,将待计算参数存储在外部存储模块104中;或者,在响应算法模块102发送的读取请求的情况下,接收数据读取信息,并根据数据读取信息,从外部存储模块104中读取待计算参数,其中,数据读取信息包括读取地址。
具体的说,上位机20先发送数据写入请求,在外部存储控制模块103响应后,上位机20发送数据写入信息,该数据写入信息通过第一转换模块1011,传输至连接模块1012,该连接模块1012将该数据写入信息送入该外部存储控制模块103中,该外部存储控制模块103按照数据写入信息中的存储地址,将待计算参数写入该外部存储模块104中。同理,在响应了该算法模块102发送的读取请求的情况下,接收该算法模块102发送的数据读取信息,外部存储控制模块103按照该数据读取信息中的读取地址,从该外部存储模块104中读取待计算参数,并将该待计算参数通过连接模块1012传输回算法模块102。
算法模块102对获取到的待计算参数进行计算,并将预设数量的计算结果返回上位机20,其中,预设数量可以根据需要预先设置,即可以是每得到一个计算结果,即将该计算结果返回至上位机,还可以每得到X个计算结果,X为大于1的整数,即将该X个计算结果返回至上位机,进而使得上位机可以实时获取到计算结果,即可根据该获取到计算结果与历史的真实结果进行比对,确定是否存在错误,且由于可以实时进行比对,在出现错误时,可以快速定位出错误的位置,进一步加快了调试速度。
本发明实施方式相对于现有技术而言,该卷积神经网络加速器的调整装置的外部存储控制模块根据数据写入信息,将待计算参数全部存储在外部存储模块中,在算法模块对待计算参数进行计算的过程中,即可根据算法模块发送的数据读取信息,从外部存储模块中获取待计算参数,且可以在将计算结果按照预设数量返回至上位机,从而使得算法模块无需将确定的计算结果存储在该卷积神经网络加速器的调整装置内的存储区中,由于无需占用该调整装置内的存储资源,从而提高计算的速度;另外,由于计算结果按照预设数量上传至上位机,例如,若预设数量为1个计算结果,则相当于实时上传计算结果,使得上位机可以实时获取计算结果,使得上位机可以随时获取需要的计算结果,无需在所有待机算参数完成计算后,获取计算结果,加快了获取计算结果的速度,进一步缩短了调试的时间,同时,由于可以实时获取计算结果,以便在计算结果发生错误后,可以加快确定发生错误的位置,提高了对卷积神经网络算法的调试效率。
本发明的第二实施方式涉及一种卷积神经网络加速器的调试装置。第二实施方式是对第一实施方式的进一步改进,主要改进之处在于:在本发明第二实施方式中,该卷积神经网络加速器的调试装置10还包括第二传输模块105和寄存器106,其中,第二传输模块105分别与第一传输模块和寄存器106连接,寄存器106与算法模块102连接。该卷积神经网络加速器的调试装置10的具体结构如图3所示。
第一传输模块(图3示出的为第一传输模块101包括的第一转换模块1011和连接模块1012)和第二传输模块105传输上位机20发送的运行控制信息;寄存器106获取上位机20发送的运行控制信息,并在响应算法模块102的获取请求的情况下,将运行控制信息传输至算法模块102,其中,运行控制信息用于指示算法模块102计算待计算参数;算法模块102根据运行控制信息,确定计算指令。
具体的说,该运行控制信息可以用于控制算法模块102每层计算的开启或关闭,例如,算法模块102有三层卷积算法,则运行控制信息可以用于指示哪一层卷积算法的开启,以及哪一层卷积算法的关闭。可以理解的是,在调试初始情况下,该运行控制信息应当先存储在该寄存器106中,在外部存储模块104存储完待计算参数后,算法模块102即可向该寄存器106发送读取请求,获取该运行控制信息,以便算法模块102根据该运行控制信息计算待计算参数。
一个具体实现中,寄存器106还用于存储运行状态,并在接收到上位机20的获取指令的情况下,将运行状态通过第二传输模块101上报至上位机20,其中,运行状态由算法模块102根据计算结果确定,运行状态用于指示当前卷积神经网络加速器的调试装置10运行的进度。
具体的说,运行状态用于指示该卷积神经网络加速器的调试装置10运行的进度,例如,可以利用某一个或者某几个变量的值指代该程序的运行状态,则可以检测该程序中的变量的值的变化情况,确定该运行状态。
一个具体的实现中,第二传输模块105与第一传输模块中的第一转换模块1011连接。第二传输模块105用于将运行控制信息或运行状态的数据格式在第二数据格式和第三数据格式之间相互转换,第二数据格式为外部存储模块104的数据格式,第三数据格式为寄存器106的数据格式。
具体的说,上位机20的数据格式与外部存储模块104的数据格式不同,与寄存器106的数据格式也不同,上位机20发送的运行控制信息的数据格式经过第一转换模块1011转换第二数据格式,在经过第二传输模块105,该运行控制信息的数据格式由第二数据格式转换为第三数据格式,并存储在寄存器106中。同理,寄存器106存储的运行状态的数据格式为第三数据格式,在经过第二传输模块105后,该运行状态的第三数据格式转换为第二数据格式,之后通过第一转换模块1011,转换为上位机20支持的第一数据格式。
值得一提的是,与第一实施方式类似,若上位机20与第一转换模块1011之间采用PCIe总线连接,外部存储模块104采用DDR,那么第一数据格式为PCIe总线所支持的格式,第二数据格式为AXI4协议所支持的数据格式,第三数据格式为该寄存器106所支持的数据格式,例如,***总线(Advanced Peripheral Bus,简称“APB”)所支持的数据格式。
需要说明的是,由于寄存器106存储运行控制信息和运行状态,因而,在调试程序的过程中,在出现了错误的情况下,上位机20可以通过获取寄存器106存储的运行状态,快速定位出发生错误的位置,从而缩短调试的时间,同时,在工程师重新编译程序的过程中,上位机20可以通过运行控制信息,直接控制算法模块102直接运行该运行控制信息中指定的运行状态,而无需重头编译整个程序,进一步加快程序调试的速度。
本实施方式提供的卷积神经网络加速器的调试装置,通过第一传输模块和第二传输模块,寄存器可以获取到上位机发送的运行控制信息,该寄存器存储该运行控制信息,在算法模块需要进行计算的情况下,通过获取请求,获取寄存器中的运行控制信息,缩短了获取该运行控制信息的速度,同时,由于卷积神经网络有多个卷积层,通过该运行控制信息可以控制算法模块控制每层的卷积层的开开启或关闭,使得在调试过程中,可以灵活控制每层卷积层的运行情况,便于程序的调试。同时,该寄存器还存储有运行控制信息,通过运行控制信息和运行状态配合使用,即可控制程序在指定的运行状态运行,而无需运行所有的程序,从而缩短了调试的速度,也提高了调试的灵活性。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明第三实施方式涉及一种卷积神经网络加速器的调试方法,该卷积神经网络加速器的调试装置中包括外部存储模块,以及设置在FPGA芯片上的第一传输模块、算法模块和外部存储控制模块,而该卷积神经网络加速器的调试方法应用在该卷积神经网络加速器的调试装置中的FPGA芯片上。该卷积神经网络加速器的调试方法具体的流程如图4所示。
步骤301:根据上位机发送的数据写入信息,控制外部存储模块存储待计算参数,数据写入信息包括待计算参数和存储地址。
具体的说,在对该卷积神经网络加速器的调试装置进行程序调试的过程中,由于存在大量的待计算参数,上位机向FPGA芯片发送数据写入信息,该FPGA中的外部存储控制模块按照数据写入信息中的存储地址的位置将待计算参数存入外部存储模块。可以理解的是,上位机在发送数据写入信息之前,先向该FPGA芯片发送数据写入请求,在该FPGA芯片中的外部存储控制模块在响应了该数据写入请求后,上位机在向FPGA芯片发送数据写入信息,该数据写入信息包括存储地址和待计算参数。该存储地址为将待计算参数在该外部存储模块中的存储位置,FPGA芯片即可将待计算参数按照该存储地址存储在外部存储模块中。
步骤302:根据数据读取信息,从外部存储模块中读取待计算参数。
具体的说,该FPGA芯片中的算法模块在启动计算功能后,该算法模块向该外部存储控制模块发送数据读取信息,该外部存储控制模块根据该数据读取信息,从外部存储模块中读取待计算参数,该外部存储控制模块将读取到的待计算参数发送至算法模块,由该算法模块对待计算参数进行计算。
步骤303:根据计算指令和读取的待计算参数,确定计算结果,并将预设数量的计算结果返回至上位机。
具体的说,计算指令可以是预先存储在该算法模块中,上位机可以向该算法模块发送启动计算的指令,该算法模块在接收到该启动计算的质量后,即可读取该预先存储的计算质量,并接收待计算参数,从而确定出计算结果。预设数量可以一个计算结果,也可以是X个计算结果,X为大于1的整数,例如,可以每计算出一个计算结果,即将该计算结果返回至上位机。由上位机根据计算结果,与历史数据进行比对,确定是否存在错误。若存在错误,根据实时获取计算结果,可以快速定位出错误发生的位置,进而加快对程序的调试速度。同时,由于实时上传计算结果,使得该计算结果不会占用FPGA芯片内的存储资源,提高FPGA芯片的计算速度,进而提高调试的速度。
本发明实施方式相对于现有技术而言,该卷积神经网络加速器的调整装置的外部存储控制模块根据数据写入信息,将待计算参数全部存储在外部存储模块中,在算法模块对待计算参数进行计算的过程中,即可根据算法模块发送的数据读取信息,从外部存储模块中获取待计算参数,且可以在将计算结果按照预设数量返回至上位机,从而使得算法模块无需将确定的计算结果存储在该卷积神经网络加速器的调整装置内的存储区中,由于无需占用该调整装置内的存储资源,从而提高计算的速度;另外,由于计算结果按照预设数量上传至上位机,例如,若预设数量为1个计算结果,则相当于实时上传计算结果,使得上位机可以实时获取计算结果,使得上位机可以随时获取需要的计算结果,无需在所有待机算参数完成计算后,获取计算结果,加快了获取计算结果的速度,进一步缩短了调试的时间,同时,由于可以实时获取计算结果,以便在计算结果发生错误后,可以加快确定发生错误的位置,提高了对卷积神经网络算法的调试效率。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
不难发现,本实施方式为与第一实施方式相对应的方法实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明第四实施方式涉及一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现第三实施方式中的卷积神经网络加速器的调试方法。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种卷积神经网络加速器的调试装置,其特征在于,包括:第一传输模块、算法模块、外部存储控制模块和外部存储模块,其中,所述第一传输模块分别与所述算法模块和所述外部存储控制模块连接,所述外部存储控制模块与所述外部存储模块连接;
所述外部存储控制模块根据上位机发送的数据写入信息,控制所述外部存储模块存储待计算参数,所述数据写入信息包括待计算参数和存储地址;
所述外部存储控制模块根据所述算法模块发送的数据读取信息,从所述外部存储模块中读取待计算参数,并将所述待计算参数通过所述第一传输模块传输至所述算法模块;
所述算法模块根据计算指令和读取的所述待计算参数,确定计算结果,并将预设数量的所述计算结果通过所述第一传输模块返回至所述上位机。
2.根据权利要求1所述的卷积神经网络加速器的调试装置,其特征在于,所述卷积神经网络加速器的调试装置还包括第二传输模块和寄存器,其中,所述第二传输模块分别与第一传输模块和所述寄存器连接,所述寄存器与所述算法模块连接;
所述第一传输模块和第二传输模块传输所述上位机发送的运行控制信息;
所述寄存器获取所述上位机发送的运行控制信息,并在响应所述算法模块的获取请求的情况下,将所述运行控制信息传输至所述算法模块,其中,所述运行控制信息用于指示所述算法模块计算所述待计算参数;
所述算法模块根据所述运行控制信息,确定所述计算指令。
3.根据权利要求2所述的卷积神经网络加速器的调试装置,其特征在于,所述寄存器还用于存储运行状态,并在接收到所述上位机的获取指令的情况下,将所述运行状态通过所述第二传输模块上报至所述上位机,其中,所述运行状态由所述算法模块根据所述计算结果确定,所述运行状态用于指示当前所述卷积神经网络加速器的调试装置运行的进度。
4.根据权利要求1至3中任一项所述的卷积神经网络加速器的调试装置,其特征在于,所述第一传输模块包括:相互连接的第一转换模块和连接模块,所述第一转换模块与所述上位机连接,所述连接模块分别与所述算法模块和所述外部存储控制模块连接;
所述第一转换模块用于将数据写入信息或所述计算结果的数据格式在第一数据格式和第二数据格式之间转换,所述第一数据格式为所述上位机的数据格式,所述第二数据格式为所述外部存储模块的数据格式;
所述连接模块用于连通所述第一转换模块、所述算法模块和所述外部存储控制模块。
5.根据权利要求3所述的卷积神经网络加速器的调试装置,其特征在于,所述第二传输模块具体用于将所述运行控制信息或所述运行状态的数据格式在第二数据格式和第三数据格式之间相互转换,所述第二数据格式为所述外部存储模块的数据格式,所述第三数据格式为所述寄存器的数据格式。
6.根据权利要求1、2、3或5所述的卷积神经网络加速器的调试装置,其特征在于,所述外部存储控制模块具体用于:
在响应所述上位机发送的数据写入请求的情况下,接收所述数据写入信息,根据所述数据写入信息中的存储地址,将所述待计算参数存储至所述外部存储模块中;
或者,
在响应所述算法模块发送的读取请求的情况下,接收所述数据读取信息,并根据所述数据读取信息,从所述外部存储模块中读取所述待计算参数,所述数据读取信息包括读取地址。
7.根据权利要求4所述的卷积神经网络加速器的调试装置,其特征在于,所述连接模块采用高级可扩展接口4协议。
8.根据权利要求1所述的卷积神经网络加速器的调试装置,其特征在于,所述卷积神经网络加速器的调试装置采用现场可编程门阵列FPGA设计。
9.一种卷积神经网络加速器的调试方法,其特征在于,应用于卷积神经网络加速器的调试装置,包括:
根据上位机发送的数据写入信息,控制外部存储模块存储待计算参数,所述数据写入信息包括待计算参数和存储地址;
根据数据读取信息,从所述外部存储模块中读取待计算参数;
根据计算指令和读取的所述待计算参数,确定计算结果,并将预设数量的所述计算结果返回至所述上位机。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求9中所述的卷积神经网络加速器的调试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910019434.9A CN109858621B (zh) | 2019-01-09 | 2019-01-09 | 一种卷积神经网络加速器的调试装置、方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910019434.9A CN109858621B (zh) | 2019-01-09 | 2019-01-09 | 一种卷积神经网络加速器的调试装置、方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109858621A true CN109858621A (zh) | 2019-06-07 |
CN109858621B CN109858621B (zh) | 2021-09-17 |
Family
ID=66894258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910019434.9A Active CN109858621B (zh) | 2019-01-09 | 2019-01-09 | 一种卷积神经网络加速器的调试装置、方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109858621B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110751272A (zh) * | 2019-10-30 | 2020-02-04 | 珠海格力电器股份有限公司 | 卷积神经网络模型中数据定位的方法、装置及存储介质 |
CN110929860A (zh) * | 2019-11-07 | 2020-03-27 | 深圳云天励飞技术有限公司 | 一种卷积加速运算方法、装置、存储介质及终端设备 |
CN111416654A (zh) * | 2020-03-16 | 2020-07-14 | 北京邮电大学 | 一种基于硬件加速的卫星虚拟化信关站传输架构 |
CN111506518A (zh) * | 2020-04-13 | 2020-08-07 | 湘潭大学 | 一种数据存储控制方法及装置 |
CN111860821A (zh) * | 2020-08-04 | 2020-10-30 | 深圳鲲云信息科技有限公司 | 数据流架构神经网络芯片的数据传输的控制方法及*** |
CN112272074A (zh) * | 2020-10-27 | 2021-01-26 | 国网内蒙古东部电力有限公司电力科学研究院 | 一种基于神经网络的信息传输速率控制方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662835A (zh) * | 2012-03-23 | 2012-09-12 | 凌阳科技股份有限公司 | 一种针对嵌入式***的程序调试方法及嵌入式*** |
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
US20180046913A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Combining cpu and special accelerator for implementing an artificial neural network |
CN108197699A (zh) * | 2018-01-05 | 2018-06-22 | 中国人民解放军国防科技大学 | 针对卷积神经网络硬件加速器的调试模块 |
CN108205704A (zh) * | 2017-09-27 | 2018-06-26 | 深圳市商汤科技有限公司 | 一种神经网络芯片 |
US20180189642A1 (en) * | 2017-01-04 | 2018-07-05 | Stmicroelectronics S.R.L. | Configurable accelerator framework |
CN108920373A (zh) * | 2017-12-29 | 2018-11-30 | 大唐终端技术有限公司 | 嵌入式软件调试***及其方法 |
-
2019
- 2019-01-09 CN CN201910019434.9A patent/CN109858621B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662835A (zh) * | 2012-03-23 | 2012-09-12 | 凌阳科技股份有限公司 | 一种针对嵌入式***的程序调试方法及嵌入式*** |
US20180046913A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Combining cpu and special accelerator for implementing an artificial neural network |
US20180189642A1 (en) * | 2017-01-04 | 2018-07-05 | Stmicroelectronics S.R.L. | Configurable accelerator framework |
CN108205704A (zh) * | 2017-09-27 | 2018-06-26 | 深圳市商汤科技有限公司 | 一种神经网络芯片 |
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
CN108920373A (zh) * | 2017-12-29 | 2018-11-30 | 大唐终端技术有限公司 | 嵌入式软件调试***及其方法 |
CN108197699A (zh) * | 2018-01-05 | 2018-06-22 | 中国人民解放军国防科技大学 | 针对卷积神经网络硬件加速器的调试模块 |
Non-Patent Citations (1)
Title |
---|
SONGPU HUANG ET AL.: "Design and Implementation of Convolutional Neural Network Accelerator with Variable Layer-by-layer Debugging", 《ICDLT’18》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110751272A (zh) * | 2019-10-30 | 2020-02-04 | 珠海格力电器股份有限公司 | 卷积神经网络模型中数据定位的方法、装置及存储介质 |
CN110929860A (zh) * | 2019-11-07 | 2020-03-27 | 深圳云天励飞技术有限公司 | 一种卷积加速运算方法、装置、存储介质及终端设备 |
CN110929860B (zh) * | 2019-11-07 | 2020-10-23 | 深圳云天励飞技术有限公司 | 一种卷积加速运算方法、装置、存储介质及终端设备 |
CN111416654A (zh) * | 2020-03-16 | 2020-07-14 | 北京邮电大学 | 一种基于硬件加速的卫星虚拟化信关站传输架构 |
CN111416654B (zh) * | 2020-03-16 | 2021-07-09 | 北京邮电大学 | 一种基于硬件加速的卫星虚拟化信关站传输架构 |
CN111506518A (zh) * | 2020-04-13 | 2020-08-07 | 湘潭大学 | 一种数据存储控制方法及装置 |
CN111506518B (zh) * | 2020-04-13 | 2022-12-20 | 湘潭大学 | 一种数据存储控制方法及装置 |
CN111860821A (zh) * | 2020-08-04 | 2020-10-30 | 深圳鲲云信息科技有限公司 | 数据流架构神经网络芯片的数据传输的控制方法及*** |
WO2022028223A1 (zh) * | 2020-08-04 | 2022-02-10 | 深圳鲲云信息科技有限公司 | 数据流架构神经网络芯片的数据传输的控制方法及*** |
CN111860821B (zh) * | 2020-08-04 | 2023-05-16 | 深圳鲲云信息科技有限公司 | 数据流架构神经网络芯片的数据传输的控制方法及*** |
CN112272074A (zh) * | 2020-10-27 | 2021-01-26 | 国网内蒙古东部电力有限公司电力科学研究院 | 一种基于神经网络的信息传输速率控制方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN109858621B (zh) | 2021-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109858621A (zh) | 一种卷积神经网络加速器的调试装置、方法及存储介质 | |
CN103150264B (zh) | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 | |
US11237880B1 (en) | Dataflow all-reduce for reconfigurable processor systems | |
US11010313B2 (en) | Method, apparatus, and system for an architecture for machine learning acceleration | |
CN109597646A (zh) | 具有可配置空间加速器的处理器、方法和*** | |
CN108268278A (zh) | 具有可配置空间加速器的处理器、方法和*** | |
US11392740B2 (en) | Dataflow function offload to reconfigurable processors | |
CN104346285A (zh) | 内存访问处理方法、装置及*** | |
CN104820657A (zh) | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 | |
CN104699631A (zh) | Gpdsp中多层次协同与共享的存储装置和访存方法 | |
CN106293843B (zh) | 一种数据加载*** | |
CN104850866B (zh) | 基于SoC-FPGA的自重构K-means聚类技术实现方法 | |
CN109669774A (zh) | 硬件资源的量化方法、编排方法、装置及网络设备 | |
CN106844048A (zh) | 基于硬件特性的分布式共享内存方法及*** | |
CN109408450A (zh) | 一种数据处理的方法、***、协处理装置和主处理装置 | |
CN115098412B (zh) | 外设访问控制器、数据访问装置及对应方法、介质和芯片 | |
CN110399221A (zh) | 数据处理方法、***及终端设备 | |
US20240078112A1 (en) | Techniques for decoupled access-execute near-memory processing | |
CN109491934A (zh) | 一种集成计算功能的存储管理***控制方法 | |
CN110086602A (zh) | 基于gpu的sm3密码散列算法的快速实现方法 | |
CN104156316B (zh) | 一种Hadoop集群批处理作业的方法及*** | |
CN102411557B (zh) | 多粒度并行fft计算装置 | |
CN105718349B (zh) | 跨管芯接口监听或全局观察消息排序 | |
CN105335135A (zh) | 数据处理方法和中心节点 | |
CN107479622A (zh) | 一种基于soc的双通道任意波形发生器和产生方法 |
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 |