CN110516334B - 基于硬件环境的卷积计算仿真测试方法、装置及相关设备 - Google Patents
基于硬件环境的卷积计算仿真测试方法、装置及相关设备 Download PDFInfo
- Publication number
- CN110516334B CN110516334B CN201910760181.0A CN201910760181A CN110516334B CN 110516334 B CN110516334 B CN 110516334B CN 201910760181 A CN201910760181 A CN 201910760181A CN 110516334 B CN110516334 B CN 110516334B
- Authority
- CN
- China
- Prior art keywords
- convolution calculation
- convolution
- result
- data
- data information
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 142
- 238000004088 simulation Methods 0.000 title claims abstract description 40
- 238000010998 test method Methods 0.000 title claims abstract description 15
- 238000012360 testing method Methods 0.000 claims abstract description 23
- 238000007667 floating Methods 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 23
- 238000010586 diagram Methods 0.000 claims description 21
- 239000011159 matrix material Substances 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013139 quantization Methods 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 12
- 238000009825 accumulation Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于硬件环境的卷积计算仿真测试方法,该方法包括以下步骤:获取待用于进行卷积计算的数据信息;模拟硬件环境的卷积计算实现逻辑,基于数据信息进行卷积计算的软件仿真,获得第一结果数据;将第一结果数据与第二结果数据进行比对,获得第一比对结果,第二结果数据为在硬件环境下使用数据信息进行卷积计算获得的数据;根据第一比对结果,验证硬件实现逻辑是否正确。应用本发明实施例所提供的技术方案,可以有效进行卷积计算的仿真测试,及时发现硬件实现逻辑的错误之处,方便硬件调试,可以提高硬件开发效率。本发明还公开了一种基于硬件环境的卷积计算仿真测试装置、设备及存储介质,具有相应技术效果。
Description
技术领域
本发明涉及测试技术领域,特别是涉及一种基于硬件环境的卷积计算仿真测试方法、装置及相关设备。
背景技术
随着计算机技术的快速发展,卷积神经网络逐渐兴起,从而促进了人工智能的进步,使得人工智能在农业、金融、安防、健康医疗、制造等各个领域应用越来越广泛。
卷积神经网络中最重要、计算量最大的地方就是各种各样的卷积计算,为了加快卷积计算的速度,各大硬件产商研发了针对卷积计算的加速卡。卷积计算的硬件加速平台(如FPGA(Field-Programmable Gate Array,现场可编程门阵列)),拥有大量、高效的并行逻辑,但对于卷积计算的数据量大、计算速度快的要求,在硬件上实现的逻辑异常复杂。在对硬件上的卷积计算进行测试时,往往因为硬件板卡上的数据无法有效的显示,使得测试及修复代码漏洞(bug)非常困难。基于上述问题,开发人员在设计软件代码时先经过开发环境(如xilinx FPGA开发环境vivado)进行仿真,通过仿真波形验证逻辑的正确与否,但由于数据量大、计算逻辑复杂,开发人员在仿真时往往耗时巨大、容易出错,使得设计开发进度缓慢。
综上所述,如何有效进行卷积计算仿真测试,提高硬件开发效率,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种基于硬件环境的卷积计算仿真测试方法、装置及相关设备,以有效进行卷积计算的仿真测试,提高硬件开发效率。
为解决上述技术问题,本发明提供如下技术方案:
一种基于硬件环境的卷积计算仿真测试方法,包括:
获取待用于进行卷积计算的数据信息,所述数据信息至少包括输入特征图和权重;
模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据;
将所述第一结果数据与第二结果数据进行比对,获得第一比对结果,所述第二结果数据为在所述硬件环境下使用所述数据信息进行卷积计算获得的数据;
根据所述第一比对结果,验证硬件实现逻辑是否正确。
在本发明的一种具体实施方式中,还包括:
根据所述第一比对结果,定位并输出硬件实现逻辑的错误位置。
在本发明的一种具体实施方式中,所述数据信息为32位浮点数类型,在所述获取待用于进行卷积计算的数据信息之后、所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据之前,还包括:
将所述数据信息由32位浮点数类型量化为8位整数类型。
在本发明的一种具体实施方式中,在所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据之后,还包括:
将所述第一结果数据反量化到32位浮点数类型,获得第一对应结果;
将所述第一对应结果与第二对应结果进行比对,获得第二比对结果,所述第二对应结果为:使用理论卷积计算逻辑,基于32位浮点数类型的所述数据信息进行卷积计算,获得的结果;
根据所述第二比对结果,确定精度损失是否满足预设要求。
在本发明的一种具体实施方式中,所述权重为7x7卷积核,所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据,包括:
将所述7x7卷积核转换为9x9卷积核,并将所述9x9卷积核平分成9个3x3卷积核;
将所述输入特征图按照卷积核拆分的偏移位置拆分成9个特征图;
对9个特征图中的每个特征图进行3x3卷积核的卷积计算,将得到的特征图进行累加得到一个通道的特征图;
在输入通道上进行累加得到输出通道上的特征图数据,获得第一结果数据。
在本发明的一种具体实施方式中,所述权重为3x3卷积核,所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据,包括:
将所述输入特征图依次取出11x11区域;
将每个11x11区域拆分成9个5x5区域;
将每个5x5区域进行数据重排序为9x9矩阵,同时将所述3x3卷积核数据重排序为9x9矩阵;
经过脉动阵列使对应两个9x9矩阵的列相乘累加得出9个数,排成3x3区域,组合得到输出特征图,获得第一结果数据。
在本发明的一种具体实施方式中,所述权重为1x1卷积核,所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据,包括:
将所述输入特征图依次取出9x9矩阵,并将所述1x1卷积核数据重排序为9x9矩阵;
经过脉动阵列使对应两个9x9矩阵相乘得出9x9区域,组合得到输出特征图,获得第一结果数据。
一种基于硬件环境的卷积计算仿真测试装置,包括:
数据信息获取模块,用于获取待用于进行卷积计算的数据信息,所述数据信息至少包括输入特征图和权重;
软件仿真模块,用于模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据;
结果数据比对模块,用于将所述第一结果数据与第二结果数据进行比对,获得第一比对结果,所述第二结果数据为在所述硬件环境下使用所述数据信息进行卷积计算获得的数据;
逻辑验证模块,用于根据所述第一比对结果,验证硬件实现逻辑是否正确。
一种基于硬件环境的卷积计算仿真测试设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述基于硬件环境的卷积计算仿真测试方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述基于硬件环境的卷积计算仿真测试方法的步骤。
应用本发明实施例所提供的技术方案,获取待用于进行卷积计算的数据信息后,模拟硬件环境的卷积计算实现逻辑,基于数据信息进行卷积计算的软件仿真,获得第一结果数据,将第一结果数据与在硬件环境下使用数据信息进行卷积计算获得的第二结果数据进行比对,可以验证硬件实现逻辑是否正确。这样可以有效进行卷积计算的仿真测试,及时发现硬件实现逻辑的错误之处,方便硬件调试,可以提高硬件开发效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于硬件环境的卷积计算仿真测试方法的实施流程图;
图2为本发明实施例中一种卷积核平分方式示意图;
图3为本发明实施例中一种区域提取方式示意图;
图4为本发明实施例中一种基于硬件环境的卷积计算仿真测试装置的结构示意图;
图5为本发明实施例中一种基于硬件环境的卷积计算仿真测试设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,为本发明实施例所提供的一种基于硬件环境的卷积计算仿真测试方法的实施流程图,该方法可以包括以下步骤:
S110:获取待用于进行卷积计算的数据信息。
数据信息至少包括输入特征图(featuremap)和权重。
在测试之初,先获取待用于进行卷积计算的数据信息。具体的,可以通过硬件操作句柄和硬件板卡通信,读取相关数据信息,并写入硬件内存。数据信息至少包括输入特征图和权重,还可以包括量化参数等数据。
S120:模拟预设的硬件环境的卷积计算实现逻辑,基于数据信息进行卷积计算的软件仿真,获得第一结果数据。
硬件环境中的卷积计算实现逻辑可以包括卷积核拆分、取特征图数据方式、数据重排序、脉动阵列计算、数据累加等逻辑。本发明实施例就是仿真卷积计算在硬件上的实现,需模拟预设的硬件环境的卷积计算实现逻辑,基于数据信息进行卷积计算的软件仿真,从而获得第一结果数据。
在本发明的一种具体实施方式中,权重为7x7卷积核,步骤S120可以包括以下步骤:
步骤一:将7x7卷积核转换为9x9卷积核,并将9x9卷积核平分成9个3x3卷积核;
步骤二:将输入特征图按照卷积核拆分的偏移位置拆分成9个特征图;
步骤三:对9个特征图中的每个特征图与对应的3x3卷积核进行卷积计算,将得到的特征图进行累加得到一个通道的特征图;
步骤四:在输入通道上进行累加得到输出通道上的特征图数据,获得第一结果数据。
为便于描述,将上述四个步骤结合起来进行说明。
在获取到待用于进行卷积计算的数据信息后,可以先判断数据信息中的权重是否为7x7卷积核,如果是,则可以将7x7卷积核转换为9x9卷积核,如将7x7卷积核在右、下补0,成为9x9卷积核,如图2所示。然后将9x9卷积核平分成9个3x3卷积核。具体的,可以将9x9卷积核从左到右、从上到下平分成9个3x3卷积核,如图2所示。同时,将7x7卷积核对应的输入特征图按照卷积核拆分的偏移位置拆分成9个特征图,这9个特征图需符合3x3卷积核的填充(padding)尺寸,不足的地方补0。对9个特征图中的每个特征图与对应的3x3卷积核进行卷积计算,将得到的特征图进行累加得到一个通道的特征图。上述卷积核进行卷积计算之后,都得到一个通道上的特征图,在输入通道上进行累加得到输出通道上的特征图数据,获得第一结果数据。
在本发明的另一种具体实施方式中,权重为3x3卷积核,步骤S120可以包括以下步骤:
第一个步骤:将输入特征图依次取出11x11区域;
第二个步骤:将每个11x11区域拆分成9个5x5区域;
第三个步骤:将每个5x5区域进行数据重排序为9x9矩阵,同时将3x3卷积核数据重排序为9x9矩阵;
第四个步骤:经过脉动阵列使对应两个9x9矩阵的列相乘累加得出9个数,排成3x3区域,组合得到输出特征图,获得第一结果数据。
为便于描述,将上述四个步骤结合起来进行说明。
在获取到待用于进行卷积计算的数据信息后,可以判断数据信息中的权重是否为3x3卷积核,如果是,则可以先将3x3卷积核对应的输入特征图依次取出11x11区域,后11x11区域与前11x11区域可以有2列或2行的重叠,然后将每个11x11区域再拆分出9个5x5区域,后5x5区域与前5x5区域之间可以有2行或2列的重叠,如图3所示,再将每个5x5区域进行数据重排序为9x9矩阵,同时将3x3卷积核数据重排序为9x9矩阵,经过脉动阵列使对应两个9x9矩阵的列相乘累加得出9个数,排成3x3区域,组合得到输出特征图,获得第一结果数据。
在本发明的另一个实施例中,权重为1x1卷积核,步骤S120可以包括以下步骤:
步骤一:将输入特征图依次取出9x9矩阵,并将1x1卷积核数据重排序为9x9矩阵;
步骤二:经过脉动阵列使对应两个9x9矩阵相乘得出9x9区域,组合得到输出特征图,获得第一结果数据。
为便于描述,将上述两个步骤结合起来进行说明。
在获取到待用于进行卷积计算的数据信息后,可以判断数据信息中的权重是否为1x1卷积核,如果是,则可以将1x1卷积核对应的输入特征图依次取出9x9矩阵,同时将1x1卷积核排成9x9矩阵,9x9矩阵中的81个数都是1x1的数据,经过脉动阵列使对应两个9x9矩阵相乘得出9x9区域,组合得到输出特征图,获得第一结果数据。
S130:将第一结果数据与第二结果数据进行比对,获得第一比对结果。
第二结果数据为在硬件环境下使用数据信息进行卷积计算获得的数据。
在硬件环境下使用数据信息进行卷积计算可以获得第二结果数据。通过硬件句柄可以读出第二结果数据。
将第一结果数据与第二结果数据进行比对,可以获得第一对比结果。
S140:根据第一比对结果,验证硬件实现逻辑是否正确。
根据第一比对结果,可以验证硬件实现逻辑是否正确,并可定位并输出硬件实现逻辑的错误位置。
应用本发明实施例所提供的方法,获取待用于进行卷积计算的数据信息后,模拟硬件环境的卷积计算实现逻辑,基于数据信息进行卷积计算的软件仿真,获得第一结果数据,将第一结果数据与在硬件环境下使用数据信息进行卷积计算获得的第二结果数据进行比对,可以验证硬件实现逻辑是否正确。这样可以有效进行卷积计算的仿真测试,及时发现硬件实现逻辑的错误之处,方便硬件调试,可以提高硬件开发效率。
在本发明的一个实施例中,数据信息为32位浮点数类型,在步骤S110之后、步骤S120之前,该方法还可以包括以下步骤:
将数据信息由32位浮点数类型量化为8位整数类型。
在步骤S120之后,该方法还可以包括以下步骤:
第一个步骤:将第一结果数据反量化到32位浮点数类型,获得第一对应结果;
第二个步骤:将第一对应结果与第二对应结果进行比对,获得第二比对结果,第二对应结果为:使用理论卷积计算逻辑,基于32位浮点数类型的数据信息进行卷积计算,获得的结果;
第三个步骤:根据第二比对结果,确定精度损失是否满足预设要求。
在本发明实施例中,获取到的待用于进行卷积计算的数据信息可以为32位浮点数类型,为了有利于硬件平台的计算,可以将数据信息由32位浮点数类型量化为8位整数类型。
进而在步骤S120模拟硬件环境的卷积计算实现逻辑,可以基于8位整数类型的数据信息进行卷积计算的软件仿真,获得第一结果数据。
在获得第一结果数据之后,可以将第一结果数据反量化到32位浮点数类型,获得第一对应结果。同时,可以使用理论卷积计算逻辑,基于32位浮点数类型的数据信息进行卷积计算,获得第二对应结果。将第一对应结果与第二对应结果进行比对,可以获得第二比对结果,根据第二比对结果,可以确定精度损失,并确定精度损失是否满足预设要求。该预设要求可以根据实际情况进行设定和调整。
在确定精度损失不满足预设要求的情况下,可以对数据信息,如输入特征图、权重、量化参数等数据进行调整,以便更好地进行卷积计算的仿真测试。
本发明实施例针对已有硬件环境上的卷积计算,存在数据量大、环境封闭等调试难问题,仿真卷积计算在硬件上的实现,能有效的对计算的结果进行仿真,与硬件实现的结果比对,判断硬件实现卷积计算的正确性,从而为硬件开发提供依据。也就是说,将卷积计算在硬件上的实现逻辑,搬到软件上进行仿真,能够清晰地看到硬件实现中不易查看的中间结果,并对大量数据进行比对,判断硬件实现逻辑的正确与否,快速定位硬件实现逻辑的错误位置,有利于硬件开发。
相应于上面的方法实施例,本发明实施例还提供了一种基于硬件环境的卷积计算仿真测试装置,下文描述的一种基于硬件环境的卷积计算仿真测试装置与上文描述的一种基于硬件环境的卷积计算仿真测试方法可相互对应参照。
参见图4所示,该装置包括以下模块:
数据信息获取模块210,用于获取待用于进行卷积计算的数据信息,数据信息至少包括输入特征图和权重;
软件仿真模块220,用于模拟硬件环境的卷积计算实现逻辑,基于数据信息进行卷积计算的软件仿真,获得第一结果数据;
结果数据比对模块230,用于将第一结果数据与第二结果数据进行比对,获得第一比对结果,第二结果数据为在硬件环境下使用数据信息进行卷积计算获得的数据;
逻辑验证模块240,用于根据第一比对结果,验证硬件实现逻辑是否正确。
应用本发明实施例所提供的装置,获取待用于进行卷积计算的数据信息后,模拟硬件环境的卷积计算实现逻辑,基于数据信息进行卷积计算的软件仿真,获得第一结果数据,将第一结果数据与在硬件环境下使用数据信息进行卷积计算获得的第二结果数据进行比对,可以验证硬件实现逻辑是否正确。这样可以有效进行卷积计算的仿真测试,及时发现硬件实现逻辑的错误之处,方便硬件调试,可以提高硬件开发效率。
在本发明的一种具体实施方式中,还包括:
错误定位模块,用于根据第一比对结果,定位并输出硬件实现逻辑的错误位置。
在本发明的一种具体实施方式中,数据信息为32位浮点数类型,还包括:
量化模块,用于在获取待用于进行卷积计算的数据信息之后、模拟硬件环境的卷积计算实现逻辑,基于数据信息进行卷积计算的软件仿真,获得第一结果数据之前,将数据信息由32位浮点数类型量化为8位整数类型。
在本发明的一种具体实施方式中,还包括:
精度损失确定模块,用于在模拟硬件环境的卷积计算实现逻辑,基于数据信息进行卷积计算的软件仿真,获得第一结果数据之后,将第一结果数据反量化到32位浮点数类型,获得第一对应结果;将第一对应结果与第二对应结果进行比对,获得第二比对结果,第二对应结果为:使用理论卷积计算逻辑,基于32位浮点数类型的数据信息进行卷积计算,获得的结果;根据第二比对结果,确定精度损失是否满足预设要求。
在本发明的一种具体实施方式中,权重为7x7卷积核,软件仿真模块220,具体用于:
将7x7卷积核转换为9x9卷积核,并将9x9卷积核平分成9个3x3卷积核;
将输入特征图按照卷积核拆分的偏移位置拆分成9个特征图;
对9个特征图中的每个特征图与对应的3x3卷积核进行卷积计算,将得到的特征图进行累加得到一个通道的特征图;
在输入通道上进行累加得到输出通道上的特征图数据,获得第一结果数据。
在本发明的一种具体实施方式中,权重为3x3卷积核,软件仿真模块220,具体用于:
将输入特征图依次取出11x11区域;
将每个11x11区域拆分成9个5x5区域;
将每个5x5区域进行数据重排序为9x9矩阵,同时将3x3卷积核数据重排序为9x9矩阵;
经过脉动阵列使对应两个9x9矩阵的列相乘累加得出9个数,排成3x3区域,组合得到输出特征图,获得第一结果数据。
在本发明的一种具体实施方式中,权重为1x1卷积核,软件仿真模块220,具体用于:
将输入特征图依次取出9x9矩阵,并将1x1卷积核数据重排序为9x9矩阵;
经过脉动阵列使对应两个9x9矩阵相乘得出9x9区域,组合得到输出特征图,获得第一结果数据。
相应于上面的方法实施例,本发明实施例还提供了一种基于硬件环境的卷积计算仿真测试设备,如图5所示,包括:
存储器310,用于存储计算机程序;
处理器320,用于执行计算机程序时实现上述基于硬件环境的卷积计算仿真测试方法的步骤。
相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述基于硬件环境的卷积计算仿真测试方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (8)
1.一种基于硬件环境的卷积计算仿真测试方法,其特征在于,包括:
获取待用于进行卷积计算的数据信息,所述数据信息至少包括输入特征图和权重;
模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据;
将所述第一结果数据与第二结果数据进行比对,获得第一比对结果,所述第二结果数据为在所述硬件环境下使用所述数据信息进行卷积计算获得的数据;
根据所述第一比对结果,验证硬件实现逻辑是否正确;
其中,所述数据信息为32位浮点数类型,在所述获取待用于进行卷积计算的数据信息之后、所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据之前,还包括:
将所述数据信息由32位浮点数类型量化为8位整数类型;
在所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据之后,还包括:
将所述第一结果数据反量化到32位浮点数类型,获得第一对应结果;
将所述第一对应结果与第二对应结果进行比对,获得第二比对结果,所述第二对应结果为:使用理论卷积计算逻辑,基于32位浮点数类型的所述数据信息进行卷积计算,获得的结果;
根据所述第二比对结果,确定精度损失是否满足预设要求;
在所述精度损失不满足预设要求的情况下,对所述数据信息进行调整。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据所述第一比对结果,定位并输出硬件实现逻辑的错误位置。
3.根据权利要求1至2之中任一项所述的方法,其特征在于,所述权重为7x7卷积核,所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据,包括:
将所述7x7卷积核转换为9x9卷积核,并将所述9x9卷积核平分成9个3x3卷积核;
将所述输入特征图按照卷积核拆分的偏移位置拆分成9个特征图;
对9个特征图中的每个特征图与对应的3x3卷积核进行卷积计算,将得到的特征图进行累加得到一个通道的特征图;
在输入通道上进行累加得到输出通道上的特征图数据,获得第一结果数据。
4.根据权利要求1至2之中任一项所述的方法,其特征在于,所述权重为3x3卷积核,所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据,包括:
将所述输入特征图依次取出11x11区域,后11x11区域与前11x11区域有2列或2行的重叠;
将每个11x11区域拆分成9个5x5区域,后5x5区域与前5x5区域之间有2行或2列的重叠;
将每个5x5区域进行数据重排序为9x9矩阵,同时将所述3x3卷积核数据重排序为9x9矩阵;
经过脉动阵列使对应两个9x9矩阵的列相乘累加得出9个数,排成3x3区域,组合得到输出特征图,获得第一结果数据。
5.根据权利要求1至2之中任一项所述的方法,其特征在于,所述权重为1x1卷积核,所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据,包括:
将所述输入特征图依次取出9x9矩阵,并将所述1x1卷积核数据重排序为9x9矩阵;
经过脉动阵列使对应两个9x9矩阵相乘得出9x9区域,组合得到输出特征图,获得第一结果数据。
6.一种基于硬件环境的卷积计算仿真测试装置,其特征在于,包括:
数据信息获取模块,用于获取待用于进行卷积计算的数据信息,所述数据信息至少包括输入特征图和权重;
软件仿真模块,用于模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据;
结果数据比对模块,用于将所述第一结果数据与第二结果数据进行比对,获得第一比对结果,所述第二结果数据为在所述硬件环境下使用所述数据信息进行卷积计算获得的数据;
逻辑验证模块,用于根据所述第一比对结果,验证硬件实现逻辑是否正确;
其中,所述数据信息为32位浮点数类型,还包括:
量化模块,用于在所述获取待用于进行卷积计算的数据信息之后、所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据之前,将所述数据信息由32位浮点数类型量化为8位整数类型;
精度损失确定模块,用于在所述模拟硬件环境的卷积计算实现逻辑,基于所述数据信息进行卷积计算的软件仿真,获得第一结果数据之后,将所述第一结果数据反量化到32位浮点数类型,获得第一对应结果;将所述第一对应结果与第二对应结果进行比对,获得第二比对结果,所述第二对应结果为:使用理论卷积计算逻辑,基于32位浮点数类型的所述数据信息进行卷积计算,获得的结果;根据所述第二比对结果,确定精度损失是否满足预设要求;在所述精度损失不满足预设要求的情况下,对所述数据信息进行调整。
7.一种基于硬件环境的卷积计算仿真测试设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述基于硬件环境的卷积计算仿真测试方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述基于硬件环境的卷积计算仿真测试方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910760181.0A CN110516334B (zh) | 2019-08-16 | 2019-08-16 | 基于硬件环境的卷积计算仿真测试方法、装置及相关设备 |
PCT/CN2019/114532 WO2021031345A1 (zh) | 2019-08-16 | 2019-10-31 | 基于硬件环境的卷积计算仿真测试方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910760181.0A CN110516334B (zh) | 2019-08-16 | 2019-08-16 | 基于硬件环境的卷积计算仿真测试方法、装置及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110516334A CN110516334A (zh) | 2019-11-29 |
CN110516334B true CN110516334B (zh) | 2021-12-03 |
Family
ID=68626410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910760181.0A Active CN110516334B (zh) | 2019-08-16 | 2019-08-16 | 基于硬件环境的卷积计算仿真测试方法、装置及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110516334B (zh) |
WO (1) | WO2021031345A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258839B (zh) * | 2020-02-16 | 2022-11-29 | 苏州浪潮智能科技有限公司 | 一种基于ResNet50网络的AI加速卡仿真测试***及其工作方法 |
CN111737159B (zh) * | 2020-08-27 | 2021-02-09 | 苏州浪潮智能科技有限公司 | 一种软件调试方法、装置、设备及计算机可读存储介质 |
CN113392973B (zh) * | 2021-06-25 | 2023-01-13 | 广东工业大学 | 一种基于fpga的ai芯片神经网络加速方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN107993186A (zh) * | 2017-12-14 | 2018-05-04 | 中国人民解放军国防科技大学 | 一种基于Winograd算法的3D CNN加速方法及*** |
CN109558329A (zh) * | 2018-12-10 | 2019-04-02 | 广东浪潮大数据研究有限公司 | 一种程序检测方法、装置、设备及可读存储介质 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
CN110059798A (zh) * | 2017-11-06 | 2019-07-26 | 畅想科技有限公司 | 开发神经网络中的稀疏性 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9262303B2 (en) * | 2008-12-05 | 2016-02-16 | Altera Corporation | Automated semiconductor design flaw detection system |
CN104346272B (zh) * | 2013-07-24 | 2018-04-10 | 无锡华润微电子有限公司 | 芯片自动仿真验证*** |
CN105302950B (zh) * | 2015-10-19 | 2018-07-24 | 北京精密机电控制设备研究所 | 一种软、硬件协同的可编程逻辑器件交联仿真测试方法 |
CN108038328A (zh) * | 2017-12-24 | 2018-05-15 | 苏州赛源微电子有限公司 | 芯片自动仿真验证*** |
CN108629411A (zh) * | 2018-05-07 | 2018-10-09 | 济南浪潮高新科技投资发展有限公司 | 一种卷积运算硬件实现装置及方法 |
CN109857640B (zh) * | 2018-12-28 | 2022-05-24 | 上海航天控制技术研究所 | 一种基于原型设计的嵌入式代码提前验证方法 |
-
2019
- 2019-08-16 CN CN201910760181.0A patent/CN110516334B/zh active Active
- 2019-10-31 WO PCT/CN2019/114532 patent/WO2021031345A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN110059798A (zh) * | 2017-11-06 | 2019-07-26 | 畅想科技有限公司 | 开发神经网络中的稀疏性 |
CN107993186A (zh) * | 2017-12-14 | 2018-05-04 | 中国人民解放军国防科技大学 | 一种基于Winograd算法的3D CNN加速方法及*** |
CN109558329A (zh) * | 2018-12-10 | 2019-04-02 | 广东浪潮大数据研究有限公司 | 一种程序检测方法、装置、设备及可读存储介质 |
CN109934339A (zh) * | 2019-03-06 | 2019-06-25 | 东南大学 | 一种基于一维脉动阵列的通用卷积神经网络加速器 |
Also Published As
Publication number | Publication date |
---|---|
WO2021031345A1 (zh) | 2021-02-25 |
CN110516334A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110516334B (zh) | 基于硬件环境的卷积计算仿真测试方法、装置及相关设备 | |
CN109949290B (zh) | 路面裂缝检测方法、装置、设备及存储介质 | |
CN105184218B (zh) | 一种指纹录入的方法及装置 | |
US8271252B2 (en) | Automatic verification of device models | |
CN107861862A (zh) | Ui自动化测试方法、装置及计算机可读存储介质 | |
CN112085056B (zh) | 目标检测模型生成方法、装置、设备及存储介质 | |
CN111191696B (zh) | 一种基于深度学习算法的钢筋分层方法及*** | |
CN114004352B (zh) | 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 | |
CN110197183A (zh) | 一种图像盲去噪的方法、装置和计算机设备 | |
CN109272044A (zh) | 一种图像相似度确定方法、装置、设备及存储介质 | |
CN107890674A (zh) | Ai行为调用方法和装置 | |
CN111506514B (zh) | 一种应用于消除类游戏的智能测试方法及*** | |
CN110263328A (zh) | 一种学科能力类型标注方法、装置、存储介质及终端设备 | |
CN113342669A (zh) | 一种缩短芯片代码覆盖率收敛时间的验证方法及装置 | |
CN111475402A (zh) | 程序功能的测试方法及相关装置 | |
CN114429208A (zh) | 基于残差结构剪枝的模型压缩方法、装置、设备及介质 | |
CN108595312A (zh) | 一种模拟用户行为的性能自动化方法及装置 | |
CN110176021A (zh) | 结合亮度校正的显著性信息的水平集图像分割方法及*** | |
CN110263417A (zh) | 一种时序特性获取方法、装置及电子设备 | |
CN115164994A (zh) | 一种基于载荷谱的测试方法、装置、设备及介质 | |
CN113065303B (zh) | 一种基于fpga的dscnn加速器分层验证方法 | |
CN114706589A (zh) | 一种重复代码扫描方法、装置和电子设备 | |
CN113272813B (zh) | 定制数据流硬件模拟仿真方法、装置、设备及存储介质 | |
CN111124897B (zh) | 一种可重用仿真接口模型的生成方法 | |
CN114355175A (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 |