CN113272813B - 定制数据流硬件模拟仿真方法、装置、设备及存储介质 - Google Patents
定制数据流硬件模拟仿真方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113272813B CN113272813B CN201980066982.5A CN201980066982A CN113272813B CN 113272813 B CN113272813 B CN 113272813B CN 201980066982 A CN201980066982 A CN 201980066982A CN 113272813 B CN113272813 B CN 113272813B
- Authority
- CN
- China
- Prior art keywords
- neural network
- data
- simulated
- layer
- parameters
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种人工智能领域的定制数据流硬件模拟仿真方法、装置、计算机设备及存储介质,其中,所述方法包括:获取定制数据流硬件参数以及待仿真数据(S101);根据寄存配置参数在C语言环境中配置对应的寄存地址,并将待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址(S102);根据对应寄存地址中的神经网络结构图模拟构建对应的模拟神经网络(S103);将对应寄存地址中的待仿真数据以及神经网络参数输入到模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址(S104)。由于在C语言环境中模拟定制数据流硬件的工作流,便于开发过程中软件部分与硬件部分的协调验证,提高开发效率。
Description
技术领域
本发明属于人工智能技术领域,尤其涉及一种定制数据流硬件模拟仿真方法、装置、设备及存储介质。
背景技术
在人工智能领域的集成电路设计中,验证所占据的时间周期甚至超过了设计,达到50%以上。对于涉及软硬件的协同工作的产品,验证变得尤为重要和复杂。定制数据流架构人工智能系统的设计涉及软硬件的紧密合作,由于硬件和软件设计是分开的,如果完全等两边分开开发完再合并验证,将会使得整个开发流程冗长而繁杂,期间上层软件不知道如何控制硬件,下层硬件也无法得到准确的数据进行测试验证。
现阶段在工业界广泛应用的验证方法有:基于验证平台或软件的仿真验证,形式化验证,软硬件协同验证。其中以仿真验证最为广泛,也是集成电路设计中必不可少的一环。通过建立测试用例,检查RTL硬件设计在特定的激励下是否会产生相应的响应。
随着硬件设计的规模越来越大,构建系统级仿真环境的开销越来越大。而且仿真的本质导致了硬件仿真的时间在硬件设计具有一定规模时,成为验证设计的瓶颈。硬件设计具有一定规模时,硬件仿真的时间极长。
完整的硬件系统级的验证离不开软件的支持。在数据流人工智能加速芯片的工作流程中,硬件系统需要提供神经网络每一层的输入数据,才能进行计算。而若这些数据不能及时而正确地产生并在系统仿真时送给硬件,会给硬件的开发带来很大的麻烦,降低开发的效率。
因此,现有的硬件系统级的仿真方法存在仿真速度低,导致定制数据流产品开发效率低的问题。
发明内容
本发明实施例提供一种定制数据流硬件模拟仿真方法,旨在解决现有的硬件系统级的仿真方法存在仿真速度低,导致定制数据流产品开发效率低的问题。
本发明实施例是这样实现的,提供一种定制数据流硬件模拟仿真方法,包括步骤:
获取定制数据流硬件参数以及待仿真数据,所述定制数据流硬件参数包括寄存配置参数、神经网络结构图与神经网络参数,所述神经网络结构图包括不同神经网络层间的串行关系;
根据所述寄存配置参数在C语言环境中配置对应的寄存地址,并将所述待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址;
根据对应寄存地址中的所述神经网络结构图模拟构建对应的模拟神经网络,所述模拟神经网络包括不同神经网络层间的数据流关系,所述数据流关系根据所述串行关系得到;
将对应寄存地址中的所述待仿真数据以及神经网络参数输入到所述模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址。
更进一步的,所述寄存配置参数包括全局流配置参数与局部流配置参数,所述神经网络参数包括不同神经网络层参数,所述根据所述寄存配置参数在C语言环境中配置对应的寄存地址,并将所述待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址的具体步骤包括:
分别配置所述待仿真数据以及神经网络结构图对应的全局流寄存地址;
配置所述不同神经网络层参数对应的局部流寄存地址。
更进一步的,所述根据对应寄存地址中的所述神经网络结构图模拟构建对应的模拟神经网络的步骤具体包括:
读取对应的全局流寄存地址中所述神经网络结构图;
根据所述神经网络结构图,模拟构建对应的模拟神经网络。
更进一步的,所述将对应寄存地址中的所述待仿真数据以及神经网络参数输入到所述模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址的步骤具体包括:
读取对应的全局流寄存地址中的所述待仿真数据;
将所述待仿真数据输入到所述模拟神经网络中;
分别读取对应的局部流寄存地址中的每层神经网络层参数与对应的待仿真数据进行计算,得到每层神经网络层对应的层验证数据,并将所述每层神经网络层的层验证数据返回到对应的局部流寄存地址;
在所有神经网络层计算完比后,得到模拟神经网络的验证数据,并将所述模拟神经网络的验证数据返回到与待仿真数据对应的全局流寄存地址。
更进一步的,在所述将所述待仿真数据输入到所述模拟神经网络中之前,所述方法还包括:
对所述待仿真数据进行量化,得到8bit单元长度的待仿真数据;
所述将所述待仿真数据输入到神经网络中的步骤具体包括:
将所述8bit单元长度的待仿真数据输入到所述模拟神经网络中。
更进一步的,所述分别读取对应的局部流寄存地址中的每层神经网络层参数与对应的待仿真数据进行计算,得到每层神经网络层对应的层验证数据,并将所述每层神经网络层的层验证数据返回到对应的局部流寄存地址的步骤具体还包括:
分别读取对应的局部流寄存地址中的每层神经网络层参数与对应的待仿真数据进行计算;
在上一神经网络层计算得到层验证数据后,将上一神经网络层对应的层验证数据进行量化,得到8bit单元长度的层验证数据;
将所述上一神经网络层对应的8bit单元长度的层验证数据输入到当前层神经网络层,计算完成后,将得到的层验证数据返回所述当前层神经网络层对应的寄存地址。
本发明还提供一种定制数据流硬件模拟仿真装置,所述装置包括:
获取模块,用于获取定制数据流硬件参数以及待仿真数据,所述定制数据流硬件参数包括寄存配置参数、神经网络结构图与神经网络参数,所述神经网络结构图包括不同神经网络层间的串行关系;
配置模块,用于根据所述寄存配置参数在C语言环境中配置对应的寄存地址,并将所述待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址;
构建模块,用于根据对应寄存地址中的所述神经网络结构图模拟构建对应的模拟神经网络,所述模拟神经网络包括不同神经网络层间的数据流关系,所述数据流关系根据所述串行关系得到;
计算模块,用于将对应寄存地址中的所述待仿真数据以及神经网络参数输入到所述模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址。
更进一步的,所述寄存配置参数包括全局流配置参数与局部流配置参数,所述神经网络参数包括不同神经网络层参数,所述配置模块包括:
第一配置单元,用于分别配置所述待仿真数据以及神经网络结构对应的全局流寄存地址;
第二配置单元,用于配置所述不同神经网络层参数对应的局部流寄存地址。
本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现本发明实施例中任一项所述的定制数据流硬件模拟仿真仿真方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例中任一项所述的定制数据流硬件模拟仿真方法的步骤。
本发明实现的有益效果:本发明由于在C语言环境中模拟定制数据流硬件的工作流,将系统级的仿真验证中硬件部分仿真通过C语言环境进行实现,软件部分与硬件部分可以在同一环境中形成数据流的计算,便于开发过程中软件部分与硬件部分的协调验证,提高开发效率。
附图说明
图1是本发明实施例提供的一种定制数据流硬件模拟仿真方法的流程示意图;
图2是本发明实施例提供的另一种定制数据流硬件模拟仿真方法的流程示意图;
图3是本发明实施例提供的另一种定制数据流硬件模拟仿真方法的流程示意图;
图4是本发明实施例提供的一种定制数据流硬件模拟仿真装置的结构示意图;
图5是本发明实施例提供的一种配置模块402的具体流程示意图;
图6是本发明实施例提供的一种构建模块403的具体流程示意图;
图7是本发明实施例提供的一种计算模块404的具体流程示意图;
图8是本发明实施例提供的定制数据流硬件模拟仿真装置的结构示意图;
图9是本发明实施例提供的一种构计算单元4043的具体流程示意图;
图10是本发明实施例的计算机设备的一个实施例的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有的硬件系统级的仿真方法存在仿真速度低,导致定制数据流产品开发效率低的问题。本发明由于在C语言环境中模拟定制数据流硬件的工作流,将系统级的仿真验证中硬件部分仿真通过C语言环境进行实现,软件部分与硬件部分可以在同一环境中形成数据流的计算,便于开发过程中软件部分与硬件部分的协调,提高开发效率。
如图1所示,图1为本发明实施例提供的一种定制数据流硬件的架构图,架构103与片外存储模块(DDR)101以及处CPU102通过互连进行连接,架构103包括:第一存储模块104、全局数据流网络105以及数据流引擎106,上述第一存储模块104通过互连连接上述片外存储模块101的同时,还通过互连连接上述全局数据流网络105,上述数据流引擎106通过互连连接上述全局数据流网络105以使上述数据流引擎106可以实现并行或串行。上述的数据流引擎106可以包括:计算核(或称为计算模块)、第二存储模块108以及局部数据流网络107,计算核可以包括用于计算的内核,比如卷积核109、池化核110以及激活函数核111等,当然,还可以包括除示例卷积核109、池化核110以及激活函数核111外的其他计算核,在此并不做限定,也可以包括在神经网络中所有用于计算的内核。上述的第一存储模块104与上述的第二存储模块108可以是片上缓存模块,也可以是DDR或高速DDR存储模块等。上述的数据流引擎106可以理解为支持数据流处理的计算引擎,也可以理解为专用于数据流处理的计算引擎。
上述的数据流架构可以是在FPGA可编程门阵列上进行定制。
如图2所示,为根据本申请的一种定制数据流硬件模拟仿真方法所提供的一个实施例的流程图。上述的定制数据流硬件模拟仿真方法,包括步骤:
S101,获取定制数据流硬件参数以及待仿真数据。
其中,上述的定制数据流硬件参数包括寄存配置参数、神经网络结构图与神经网络参数。
上述的寄存配置参数用于在C语言环境的存储器中开辟对应的存储区,以行成对应的寄存地址。
上述的神经网络结构图可以是识别类的神经网络结构图,比如人脸识别,车辆识别等,也可以是检测类的神经网络结构图,比如物体检测,车辆检测等。
上述的神经网络结构图可以理解为神经网络结构,进一步的,可以理解为用于各类神经网络模型的神经网络结构。上述的神经网络结构是以层为计算单元的,包含且不限于:卷积层、池化层、ReLU、全连接层等。
神经网络结构图包括不同神经网络层间的串行关系,比如卷积层、偏置层、池化层等神经网络层之间的串行关系。
上述的神经网络参数是指的神经网络结构中的每一层对应的参数,可以是权重参数、偏置参数等。上述的各类神经网络模型可以是预先训练好的对应神经网络模型,由于神经网络模型是预先训练好的,其神经网络参数的属性也是训练好的,因此,在仿真软件中配置好的神经网络可以根据配置的神经网络参数直接使用,不需要再对神经网络进行训练,根据该预先训练好的神经网络模型,可以通过神经网络结构图以及参数进行统一描述。
上述获取神经网络结构图以及神经网络参数可以是在本地进行获取,也可以是云服务器上进行获取,比如:上述的神经网络结构图以及神经网络参数可以成套的存储在本地,在使用时自动进行选择或者用户进行选择,或者是将神经网络结构图以及神经网络参数上传到云服务器中,在使用时通过网络将云服务器中的神经网络结构图以及神经网络参数下载下来。
S102,根据所述寄存配置参数在C语言环境中配置对应的寄存地址,并将待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址。
其中,上述的寄存配置参数为步骤S101中获取到的寄存配置参数,该寄存配置参数包括配置多少个寄存地址、以及对应寄存地址的大小。每个寄存地址可以存储对应的数据,比如,配置一个寄存地址用于存储仿真数据,配置一个寄存地址用于存储一个神经网络层的参数等,在需要时,从寄存地址中直接读取对应的数据即可。
另外,寄存地址也用于存储对应的计算结果,比如,卷积神经网络层对应的寄存地址存储有对应的权重参数之外,还用于在完成卷积计算后,存储对应的卷积结果。
在一个实施例中,上述寄存配置参数包括全局流配置参数与局部流配置参数,上述神经网络参数包括不同神经网络层参数。
分别配置所述待仿真数据以及神经网络结构图对应的全局流寄存地址。
由于待仿真数据以及神经网络结构图为全局数据,可以分别为待仿真数据以及神经网络结构图配置不同的全局流寄存地址。
配置所述不同神经网络层参数对应的局部流寄存地址。
由于一个神经网络中存在多个神经网络层,每个神经网络层都需要有不同的配置参数进行计算实现,比如卷积层需要权重参数与输入数据进行计算,偏置层需要偏置参数与输入数据进行计算。
因此,可以根据不同神经网络层参数配置不同的局部流寄存地址,在计算不同神经网络层时,读取对应寄存地址的参数与输入数据进行计算。比如,在进行卷积计算时,读取对应卷积层权重参数所在的寄存地址中的权重参数,与输入数据进行计算。
上述的C语言环境中配置对应的寄存地址,可以是在C语言环境中比如电脑的硬盘中开辟对应的存储空间作为寄存地址,也可以是在C语言环境中配置好的虚拟存储空间中开辟对应的存储空间作为寄存地址。
S103,根据对应寄存地址中的神经网络结构图模拟构建对应的模拟神经网络。
神经网络结构图包括不同神经网络层间的串行关系,根据该串行关系,确定数据流在不同神经网络层间的数据流关系,从而构建得到对应的模拟神经网络,需要说明的是,上述的模拟神经网络为定制数据流模拟神经网络。
上述的不同神经网络层间的数据流关系用于描述数据的流向。
在一个实施例中,在存储有神经网络结构图的全局流寄存地址中读取对应的神经网络结构图。根据读取到的神经网络结构图,模拟构建对应的模拟神经网络。这样,在全局流寄存地址中的神经网络结构图可以实现复用。
S104,将对应寄存地址中的待仿真数据以及神经网络参数输入到模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址。
在存储有待仿真的寄存地址中读取出对应的待仿真数据,在经过模拟神经网络的计算完成后,得到用以与真实硬件计算结果进行对比的验证数据。在计算完成后,将得到的验证数据写回对应的寄存地址,上层的软件可以从对应的寄存地址中读取该验证数据,提供给用户。
在一个实施例中,读取对应的全局流寄存地址中的所述待仿真数据。
将待仿真数据输入到上述的模拟神经网络中。
分别读取对应的局部流寄存地址中的每层神经网络层参数与对应的待仿真数据进行计算,得到每层神经网络层对应的层验证数据,并将每层神经网络层的层验证数据返回到对应的局部流寄存地址。这样,可以复用每层神经网络层对应的层验证数据。
在所有神经网络层计算完比后,得到模拟神经网络的验证数据,并将模拟神经网络的验证数据返回到对应的全局流寄存地址。
本发明实施例中,获取定制数据流硬件参数以及待仿真数据,定制数据流硬件参数包括寄存配置参数、神经网络结构图与神经网络参数,神经网络结构图包括不同神经网络层间的串行关系;根据寄存配置参数在C语言环境中配置对应的寄存地址,并将待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址;根据对应寄存地址中的神经网络结构图模拟构建对应的模拟神经网络,模拟神经网络包括不同神经网络层间的数据流关系,数据流关系根据串行关系得到;将对应寄存地址中的待仿真数据以及神经网络参数输入到模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址。由于在C语言环境中模拟定制数据流硬件的工作流,将系统级的仿真验证中硬件部分仿真通过C语言环境进行实现,软件部分与硬件部分可以在同一环境中形成数据流的计算,便于开发过程中软件部分与硬件部分的协调验证,提高开发效率。
如图3所示,为根据本申请的另一种定制数据流硬件模拟仿真方法所提供的一个实施例的流程图。上述的定制数据流硬件模拟仿真方法,包括步骤:
S201,获取定制数据流硬件参数以及待仿真数据。
S202,根据所述寄存配置参数在C语言环境中配置对应的寄存地址,并将待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址。
S203,根据对应寄存地址中的所述神经网络结构图模拟构建对应的模拟神经网络。
S204,对待仿真数据进行量化,得到8bit单元长度的待仿真数据。
其中,上述的量化为根据量化信息进行量化,上述的量化信息包括在上述的神经网络结构图中,上述的量化信息包括将数据量化为8bit单元长度的信息。
可以根据上述的量化信息将待仿真数据进行量化,将仿真数据量化为8bit数据等。
上述的量化可以是通过编译器进行完成。
具体的,可以通过公式r=s×(q-z)进行计算,其中,r指的是浮点数值,就是用户输入的数据,q指的是量化后的数据,z是偏移值,s是缩放值,s和z是编译器产生的。
根据公式r=s×(q-z)可得,量化后的数据为q=r/s+z。
由于s和z是编译器产生的,r是用户输入的待仿真数据,所以通过编译器对输入的待仿真数据进行量化,得到量化后的仿真输入数据。
其中,经过量化后,得到的仿真输入数据与神经网络参数为同一数据类型。
需要说明的是,神经网络参数与待仿真数据不同,神经网络参数为硬件数据类型,即为整型数据类型,而待仿真数据为浮点数据类型。在经过编译器的量化后,待仿真数据变成仿真输入数据,与神经网络参数为同一数据类型。
进一步的,获取待仿真数据,并根据量化信息,将待仿真数据转换为8bit单元长度的待仿真数据,得到8bit单元长度的仿真输入数据。
其中,神经网络参数也是8bit单元长度的数据,神经网络参数包括权重参数及偏置参数。
S205,将8bit单元长度的待仿真数据输入到模拟神经网络中。
S206,在每层神经网络层计算得到层验证数据后,将上一神经网络层对应的层验证数据进行量化,得到8bit单元长度的层验证数据。
在上一神经网络层计算后,得到的层验证数据为int32的数据,在需要输入到当前神经网络层计算时,会将该int32的数据进行量化,得到8bit单元长度的层验证数据。
S207,将上一神经网络层对应的8bit单元长度的层验证数据输入到当前层神经网络层,计算完成后,将对应的层验证数据返回当前神经网络层对应的寄存地址。
上述的上一神经网络层为当前神经网络层的上一神经网络层。将每层神经网络层对应的层验证数据写回对应的神经网络层对应的寄存地址,比如,将卷积层计算得到的卷积结果写加存储有卷积参数的局部流寄存地址,这样,可以实现卷积参数的快速复用。
S208,在所有神经网络层计算完比后,得到模拟神经网络的验证数据,并将模拟神经网络的验证数据返回到与待仿真数据对应的全局流寄存地址。
当最后的神经网络层计算完成,说明仿真计算完成,得到对应待仿真数据的验证数据。验证数据用以与真实硬件计算结果进行对比。在计算完成后,将得到的验证数据写回对应的寄存地址,上层的软件可以从对应的寄存地址中读取该验证数据,提供给用户。
本发明实施例中,获取定制数据流硬件参数以及待仿真数据,定制数据流硬件参数包括寄存配置参数、神经网络结构图与神经网络参数,神经网络结构图包括不同神经网络层间的串行关系;根据寄存配置参数在C语言环境中配置对应的寄存地址,并将待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址;根据对应寄存地址中的神经网络结构图模拟构建对应的模拟神经网络,模拟神经网络包括不同神经网络层间的数据流关系,数据流关系根据串行关系得到;将对应寄存地址中的待仿真数据以及神经网络参数输入到模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址。由于在C语言环境中模拟定制数据流硬件的工作流,将系统级的仿真验证中硬件部分仿真通过C语言环境进行实现,软件部分与硬件部分可以在同一环境中形成数据流的计算,便于开发过程中软件部分与硬件部分的协调验证,提高开发效率。另外,由于将待仿真数据量化为与神经网络参数相同的硬件数据类型,在使用软件仿真时,使得仿真计算更贴近硬件计算的结果,且硬件数据类型的数据计算量小于浮点类型的计算量,还可以提高神经网络仿真的计算速度。整个计算流程更贴近硬件的计算模式,减少浮点计算中的不相关内容,便于硬件用作输出校验。同时,由于计算模式和操作模式和硬件一致,所以可以直接模拟硬件的最终计算结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图4所示,为本实施例所提供的一种定制数据流硬件模拟仿真装置的结构示意图,上述装置400包括:
获取模块401,用于获取定制数据流硬件参数以及待仿真数据,所述定制数据流硬件参数包括寄存配置参数、神经网络结构图与神经网络参数,所述神经网络结构图包括不同神经网络层间的串行关系;
配置模块402,用于根据所述寄存配置参数在C语言环境中配置对应的寄存地址,并将所述待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址;
构建模块403,用于根据对应寄存地址中的所述神经网络结构图模拟构建对应的模拟神经网络,所述模拟神经网络包括不同神经网络层间的数据流关系,所述数据流关系根据所述串行关系得到;
计算模块404,用于将对应寄存地址中的所述待仿真数据以及神经网络参数输入到所述模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址。
进一步地,如图5所示,所述寄存配置参数包括全局流配置参数与局部流配置参数,所述神经网络参数包括不同神经网络层参数,所述配置模块402包括:
第一配置单元4021,用于分别配置所述待仿真数据以及神经网络结构对应的全局流寄存地址;
第二配置单元4022,用于配置所述不同神经网络层参数对应的局部流寄存地址。
进一步地,如图6所示,所述构建模块403包括:
第一读取单元4031,用于读取对应的全局流寄存地址中所述神经网络结构图;
构建单元4032,用于根据所述神经网络结构图,模拟构建对应的模拟神经网络。
进一步的,如图7所示,所述计算模块404包括:
第二读取单元4041,用于读取对应的全局流寄存地址中的所述待仿真数据;
输入单元4042,将所述待仿真数据输入到所述模拟神经网络中;
计算单元4043,用于分别读取对应的局部流寄存地址中的每层神经网络层参数与对应的待仿真数据进行计算,得到每层神经网络层对应的层验证数据,并将所述每层神经网络层的层验证数据返回到对应的局部流寄存地址;
返回单元4044,用于在所有神经网络层计算完比后,得到模拟神经网络的验证数据,并将所述模拟神经网络的验证数据返回到对应的全局流寄存地址。
进一步的,如图8所示,所述装置还包括:
量化模块405,用于对所述待仿真数据进行量化,得到8bit单元长度的待仿真数据;
所述计算模块404还用于将所述8bit单元长度的待仿真数据输入到所述模拟神经网络中。
如图9所示,所述计算单元4043还包括:
读取子单元40431,用于分别读取对应的局部流寄存地址中的每层神经网络层参数与对应的待仿真数据进行计算;
量化子单元40432,用于在上一神经网络层计算得到层验证数据后,将上一神经网络层对应的层验证数据进行量化,得到8bit单元长度的层验证数据;
计算子单元40433,用于将所述上一神经网络层对应的8bit单元长度的层验证数据输入到当前层神经网络层,计算完成后,将得到的层验证数据返回所述当前层神经网络层对应的寄存地址。
本申请实施例提供的一种定制数据流硬件模拟仿真装置能够实现图2至图3的方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图10,图10为本实施例计算机设备基本结构框图。
计算机设备10包括通过系统总线相互通信连接存储器1001、处理器1002、网络接口1003。需要指出的是,图中仅示出了具有组件1001-1003的计算机设备100,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可以与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器1001至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1001可以是计算机设备10的内部存储单元,例如该计算机设备10的硬盘或内存。在另一些实施例中,存储器1001也可以是计算机设备10的外部存储设备,例如该计算机设备10上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器1001还可以既包括计算机设备10的内部存储单元也包括其外部存储设备。本实施例中,存储器1001通常用于存储安装于计算机设备10的操作系统和各类应用软件,例如一种定制数据流硬件模拟仿真方法的程序代码等。此外,存储器1001还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器1002在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1002通常用于控制计算机设备10的总体操作。本实施例中,处理器1002用于运行存储器1001中存储的程序代码或者处理数据,例如运行一种定制数据流硬件模拟仿真方法的程序代码。
网络接口1003可包括无线网络接口或有线网络接口,该网络接口1003通常用于在计算机设备10与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,计算机可读存储介质存储有一种定制数据流硬件模拟仿真程序,上述一种定制数据流硬件模拟仿真程序可被至少一个处理器执行,以使至少一个处理器执行如上述的一种定制数据流硬件模拟仿真方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的一种定制数据流硬件模拟仿真方法。
本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种定制数据流硬件模拟仿真方法,其特征在于,包括步骤:
获取定制数据流硬件参数以及待仿真数据,所述定制数据流硬件参数包括寄存配置参数、神经网络结构图与神经网络参数,所述神经网络结构图包括不同神经网络层间的串行关系;
根据所述寄存配置参数在C语言环境中配置对应的寄存地址,并将所述待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址;
根据对应寄存地址中的所述神经网络结构图模拟构建对应的模拟神经网络,所述模拟神经网络包括不同神经网络层间的数据流关系,所述数据流关系根据所述串行关系得到;
将对应寄存地址中的所述待仿真数据以及神经网络参数输入到所述模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址。
2.根据权利要求1所述的定制数据流硬件模拟仿真方法,其特征在于,所述寄存配置参数包括全局流配置参数与局部流配置参数,所述神经网络参数包括不同神经网络层参数,所述根据所述寄存配置参数在C语言环境中配置对应的寄存地址,并将所述待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址的具体步骤包括:
分别配置所述待仿真数据以及神经网络结构图对应的全局流寄存地址;
配置所述不同神经网络层参数对应的局部流寄存地址。
3.根据权利要求2所述的定制数据流硬件模拟仿真方法,其特征在于,所述根据对应寄存地址中的所述神经网络结构图模拟构建对应的模拟神经网络的步骤具体包括:
读取对应的全局流寄存地址中所述神经网络结构图;
根据所述神经网络结构图,模拟构建对应的模拟神经网络。
4.根据权利要求2所述的定制数据流硬件模拟仿真方法,其特征在于,所述将对应寄存地址中的所述待仿真数据以及神经网络参数输入到所述模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址的步骤具体包括:
读取对应的全局流寄存地址中的所述待仿真数据;
将所述待仿真数据输入到所述模拟神经网络中;
分别读取对应的局部流寄存地址中的每层神经网络层参数与对应的待仿真数据进行计算,得到每层神经网络层对应的层验证数据,并将所述每层神经网络层的层验证数据返回到对应的局部流寄存地址;
在所有神经网络层计算完比后,得到模拟神经网络的验证数据,并将所述模拟神经网络的验证数据返回到与待仿真数据对应的全局流寄存地址。
5.根据权利要求4所述的定制数据流硬件模拟仿真方法,其特征在于,在所述将所述待仿真数据输入到所述模拟神经网络中之前,所述方法还包括:
对所述待仿真数据进行量化,得到8bit单元长度的待仿真数据;
所述将所述待仿真数据输入到神经网络中的步骤具体包括:
将所述8bit单元长度的待仿真数据输入到所述模拟神经网络中。
6.根据权利要求5所述的定制数据流硬件模拟仿真方法,其特征在于,所述分别读取对应的局部流寄存地址中的每层神经网络层参数与对应的待仿真数据进行计算,得到每层神经网络层对应的层验证数据,并将所述每层神经网络层的层验证数据返回到对应的局部流寄存地址的步骤具体还包括:
分别读取对应的局部流寄存地址中的每层神经网络层参数与对应的待仿真数据进行计算;
在上一神经网络层计算得到层验证数据后,将上一神经网络层对应的层验证数据进行量化,得到8bit单元长度的层验证数据;
将所述上一神经网络层对应的8bit单元长度的层验证数据输入到当前层神经网络层,计算完成后,将得到的层验证数据返回所述当前层神经网络层对应的寄存地址。
7.一种定制数据流硬件模拟仿真装置,其特征在于,所述装置包括:
获取模块,用于获取定制数据流硬件参数以及待仿真数据,所述定制数据流硬件参数包括寄存配置参数、神经网络结构图与神经网络参数,所述神经网络结构图包括不同神经网络层间的串行关系;
配置模块,用于根据所述寄存配置参数在C语言环境中配置对应的寄存地址,并将所述待仿真数据、神经网络结构图与神经网络参数寄存到对应的寄存地址;
构建模块,用于根据对应寄存地址中的所述神经网络结构图模拟构建对应的模拟神经网络,所述模拟神经网络包括不同神经网络层间的数据流关系,所述数据流关系根据所述串行关系得到;
计算模块,用于将对应寄存地址中的所述待仿真数据以及神经网络参数输入到所述模拟神经网络进行仿真计算,得到验证数据,并返回对应的寄存地址。
8.根据权利要求7所述的定制数据流硬件模拟仿真装置,其特征在于,所述寄存配置参数包括全局流配置参数与局部流配置参数,所述神经网络参数包括不同神经网络层参数,所述配置模块包括:
第一配置单元,用于分别配置所述待仿真数据以及神经网络结构对应的全局流寄存地址;
第二配置单元,用于配置所述不同神经网络层参数对应的局部流寄存地址。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的定制数据流硬件模拟仿真方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的定制数据流硬件模拟仿真方法的步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/110858 WO2021068253A1 (zh) | 2019-10-12 | 2019-10-12 | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113272813A CN113272813A (zh) | 2021-08-17 |
CN113272813B true CN113272813B (zh) | 2023-05-05 |
Family
ID=75437657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980066982.5A Active CN113272813B (zh) | 2019-10-12 | 2019-10-12 | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113272813B (zh) |
WO (1) | WO2021068253A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676830A (zh) * | 2021-12-31 | 2022-06-28 | 杭州雄迈集成电路技术股份有限公司 | 一种基于神经网络编译器的仿真实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107016175A (zh) * | 2017-03-23 | 2017-08-04 | 中国科学院计算技术研究所 | 适用神经网络处理器的自动化设计方法、装置及优化方法 |
CN109496319A (zh) * | 2018-01-15 | 2019-03-19 | 深圳鲲云信息科技有限公司 | 人工智能处理装置硬件优化方法、系统、存储介质、终端 |
CN110245750A (zh) * | 2019-06-14 | 2019-09-17 | 西南科技大学 | 一种基于fpga的神经网络数值模拟方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015181389A2 (en) * | 2014-05-29 | 2015-12-03 | Universiteit Gent | Integrated circuit verification using parameterized configuration |
-
2019
- 2019-10-12 CN CN201980066982.5A patent/CN113272813B/zh active Active
- 2019-10-12 WO PCT/CN2019/110858 patent/WO2021068253A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107016175A (zh) * | 2017-03-23 | 2017-08-04 | 中国科学院计算技术研究所 | 适用神经网络处理器的自动化设计方法、装置及优化方法 |
CN109496319A (zh) * | 2018-01-15 | 2019-03-19 | 深圳鲲云信息科技有限公司 | 人工智能处理装置硬件优化方法、系统、存储介质、终端 |
CN110245750A (zh) * | 2019-06-14 | 2019-09-17 | 西南科技大学 | 一种基于fpga的神经网络数值模拟方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113272813A (zh) | 2021-08-17 |
WO2021068253A1 (zh) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107247859B (zh) | 逻辑电路设计的验证方法、装置、电子设备及存储介质 | |
CN110363810B (zh) | 建立图像检测模型的方法、装置、设备和计算机存储介质 | |
CN114462338A (zh) | 一种集成电路的验证方法、装置、计算机设备及存储介质 | |
CN114004352B (zh) | 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 | |
Hao et al. | The implementation of a deep recurrent neural network language model on a Xilinx FPGA | |
CN112465141A (zh) | 模型压缩方法、装置、电子设备及介质 | |
CN107533473A (zh) | 用于仿真的高效波形生成 | |
CN114548384A (zh) | 具有抽象资源约束的脉冲神经网络模型构建方法和装置 | |
CN116245074A (zh) | 芯片验证方法、设备及存储介质 | |
CN113228056B (zh) | 运行时硬件模拟仿真方法、装置、设备及存储介质 | |
CN113272813B (zh) | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 | |
CN115600644A (zh) | 多任务处理方法、装置、电子设备及存储介质 | |
WO2021031137A1 (zh) | 人工智能应用开发系统、计算机设备及存储介质 | |
CN109582906A (zh) | 数据可靠度的确定方法、装置、设备和存储介质 | |
CN111507541B (zh) | 货量预测模型构建方法、货量测量方法、装置及电子设备 | |
CN112700006A (zh) | 网络架构搜索方法、装置、电子设备及介质 | |
CN115840881B (zh) | 空气数据处理方法、装置及相关设备 | |
CN111832610A (zh) | 一种3d打印组织预测的方法、系统、介质以及终端设备 | |
CN116168403A (zh) | 医疗数据分类模型训练方法、分类方法、装置及相关介质 | |
US10223077B2 (en) | Determination of signals for readback from FPGA | |
EP3734491A1 (en) | Method, apparatus, device, and medium for implementing simulator | |
CN112613257A (zh) | 验证方法、装置、电子设备和计算机可读存储介质 | |
Shah et al. | A top-down design methodology using virtual platforms for concept development | |
CN109542986A (zh) | 网络数据的要素归一化方法、装置、设备及存储介质 | |
CN111881634B (zh) | 一种电子系统行为级仿真验证方法 |
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 |