CN111258839A - 一种基于ResNet50网络的AI加速卡仿真测试系统及其工作方法 - Google Patents

一种基于ResNet50网络的AI加速卡仿真测试系统及其工作方法 Download PDF

Info

Publication number
CN111258839A
CN111258839A CN202010094700.7A CN202010094700A CN111258839A CN 111258839 A CN111258839 A CN 111258839A CN 202010094700 A CN202010094700 A CN 202010094700A CN 111258839 A CN111258839 A CN 111258839A
Authority
CN
China
Prior art keywords
data
module
convolution
featuremap
weights
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
Application number
CN202010094700.7A
Other languages
English (en)
Other versions
CN111258839B (zh
Inventor
曹其春
赵雅倩
董刚
梁玲燕
尹文枫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010094700.7A priority Critical patent/CN111258839B/zh
Publication of CN111258839A publication Critical patent/CN111258839A/zh
Application granted granted Critical
Publication of CN111258839B publication Critical patent/CN111258839B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种基于ResNet50网络的AI加速卡仿真测试系统及其工作方法,该仿真测试系统主要包括:卷积模块、激活模块、池化模块、残差模块、全连接模块、softmax模块和量化模块。仿真测试系统的工作方法主要包括:搭建基础模块,利用基础模块构建branch1分枝和branch2分枝,利用branch1分枝和branch2分枝组成res;利用res构建ResNet50网络;利用卷积模块进行卷积计算;采用量化模块对卷积计算后的float32数据进行量化,获取量化后的数据;根据量化后的数据,在ResNet50网络中对AI加速卡进行仿真测试。通过本申请,能够有效减少运算量,节省测试时间,从而快速验证AI加速卡的系统设计问题和量化后的算法精度,进而加快软件调试和硬件开发速度。

Description

一种基于ResNet50网络的AI加速卡仿真测试系统及其工作 方法
技术领域
本申请涉及人工智能技术领域,特别是涉及一种基于ResNet50网络的AI加速卡仿真 测试系统及其工作方法。
背景技术
随着人工智能在各领域的广泛应用,人民对人工智能的计算速度和精度要求越来越 高。为了满足人民对计算精度和速度的需求,各大硬件厂商专门涉及AI加速卡。对于 设计完成的加速卡,在进行板卡制作前需要验证其性能是否合格。因此,如何对AI加 速卡进行验证,以便于提高板卡制作的成功率,是个重要技术问题。
目前对AI加速卡进行验证的方法,主要是在板卡上直接验证,通过对板卡的测试来确认是否有设计错误,然后根据验证结果反过来修订设计缺陷。
然而,目前对AI加速卡进行验证的方法中,由于直接在板卡上验证,无法有效的获取中间输出结果,如果设计缺陷导致板卡验证问题,需要大量的时间进行调试,从而 导致AI加速卡的设计效率较低。
发明内容
本申请提供了一种基于ResNet50网络的AI加速卡仿真测试系统及其工作方法,以解 决现有技术中AI加速卡的设计效率较低的问题。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
一种基于ResNet50网络的AI加速卡仿真测试系统,所述仿真测试系统包括:
卷积模块,用于根据量化后的数据,按照不同的卷积核进行卷积计算;
激活模块,用于利用ReLU函数进行激活操作;
池化模块,用于根据相应的下采样方法对数据进行降维;
残差模块,用于将branch分支的输入数据和残差数据进行两两加和,获取输出数据,所述branch分支用于组成res;
全连接模块,用于对输入层神经元和输出层神经元建立权重连接;
softmax模块,用于将多个神经元的输出映射到(0,1)区间内,并在(0,1)区间 内利用公式
Figure BDA0002384963760000021
进行多分类,其中,
Figure BDA0002384963760000022
量化模块,用于对卷积计算后的int32数据进行量化,获取量化后的数据。
可选地,所述卷积模块包括:
数据获取单元,用于获取量化后的FeatureMap数据、weights数据、biase数据和量化参数数据;
第一判断单元,用于判断weights数据是否为7*7的卷积核;
拆分单元,用于当weights数据为7*7的卷积核时,将所述7*7的卷积核拆分成3*3的卷积核,并将第一FeatureMap数据拆分成第二FeatureMap数据,所述第一FeatureMap 数据为所述7*7的卷积核所匹配的FeatureMap数据,所述第二FeatureMap数据为与3*3 的卷积核padding尺寸相匹配的FeatureMap数据;
第二判断单元,用于当weights数据不为7*7的卷积核时,判断weights数据是否为3*3的卷积核;
重排序单元,用于当weights数据为3*3的卷积核时,将所述3*3的卷积核数据重排序为9*9的数据,以及将第二FeatureMap数据的相应区域重排序为9*9的数据;
脉动阵列计算单元,用于将所述9*9的数据进行脉动阵列计算;
第三判断单元,用于当weights数据不为3*3的卷积核时,判断weights数据是否为1*1的卷积核;
所述重排序单元,还用于当weights数据为1*1的卷积核时,将所述1*1的卷积核数据重排序为9*9的数据;
计算单元,用于对重排序后的3*3卷积核数据进行卷积计算,获取输入通道上FeatureMap数据,所述FeatureMap数据的数据格式为int32;
累加单元,用于对输入通道上的FeatureMap数据进行累加,获取输出通道上的FeatureMap数据。
可选地,所述池化模块具体为最大值下采样池化单元或平均值下采样单元;
所述最大值下采样单元,用于选择窗口中最大值作为下采样输出结果;
所述平均值下采样单元,用于统计选择窗口中的数据,计算平均值作为下采样的输 出结果。
可选地,所述量化后的数据为:int8数据,float16数据或者int4数据。
一种基于ResNet50网络的AI加速卡仿真测试系统的工作方法,所述工作方法包括:
搭建基础模块,所述基础模块包括:卷积模块、激活模块、池化模块、残差模块、 全连接模块、softmax模块以及量化模块;
利用所述基础模块构建branch1分枝和branch2分枝;
利用所述branch1分枝和branch2分枝组成res;
利用所述res构建ResNet50网络;
利用卷积模块进行卷积计算;
采用量化模块对卷积计算后的float32数据进行量化,获取量化后的数据;
根据量化后的数据,在ResNet50网络中对AI加速卡进行仿真测试。
可选地,所述利用卷积模块进行卷积计算,包括:
获取量化后的FeatureMap数据、weights数据、biase数据和量化参数;
判断weights数据是否为7*7的卷积核;
如果weights数据为7*7的卷积核,将所述7*7的卷积核拆分成3*3的卷积核,同 时将第一FeatureMap数据拆分成第二FeatureMap数据,所述第一FeatureMap数据为 所述7*7的卷积核所匹配的输入FeatureMap数据,所述第二FeatureMap数据为与3*3 的卷积核padding尺寸相匹配的FeatureMap数据;
如果weights数据不为7*7的卷积核,则判断weights数据是否为3*3的卷积核;
如果weights数据为3*3的卷积核,则将所述3*3的卷积核数据重排序为9*9的数据,同时将第二FeatureMap数据的相应区域重排序为9*9的数据;
如果weights数据不为3*3的卷积核,则判断weights数据是否为1*1的卷积核;
如果weights数据为1*1的卷积核,则将所述1*1的卷积核数据重排序为9*9的数据;
对所有9*9的数据进行脉动阵列计算;
对不同卷积核进行累加处理;
对输入通道上的FeatureMap数据进行累加,获取输出通道上的FeatureMap数据。
可选地,将所述7*7的卷积核拆分成3*3的卷积核的方法,包括:
将所述7*7的卷积核补充为9*9的卷积核;
按照从左到右和从上到下的顺序,将所述9*9的卷积核平分为9个3*3的卷积核。
可选地,所述将第一FeatureMap数据拆分成第二FeatureMap数据的方法,具体为:
按照卷积核拆分的偏移位置,将第一FeatureMap数据拆分成9个第二FeatureMap数据。
可选地,对不同卷积核进行累加处理的方法包括:
将3*3卷积核对应列相乘累加;
将1*1卷积核对应列相乘不累加;
将7*7卷积核平分成的9个3*3的卷积核累加。
可选地,所述采用量化模块对卷积计算后的float32数据进行量化,获取量化后的数据,包括:
根据层数获取量化参数;
将int32数据进行右移;
判断移位后的int32数据是否<0;
如果移位后的int32数据<0,对int数据取反加一;
判断取反加一后的数据是否>127;
如果取反加一后的数据>127,将取反加一后的数据置为127;
否则,将取反加一后的数据与0xff的低8位数据进行与计算;
如果移位后的int32数据≥0,判断移位后的数据是否>127;
如果移位后的数据>127,将移位后的数据置为127;
否则,将移位后的数据与0xff的低8位数据进行与计算;
输出量化后的数据,所述量化后的数据为:int8数据,float16数据或者int4数据。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请提供一种基于ResNet50网络的AI加速卡仿真测试系统,该测试系统主要包括: 卷积模块、激活模块、池化模块、残差模块、全连接模块、softmax模块和量化模块。 AI算法的卷积神经网络中卷积计算量大,本实施例中的卷积模块,通过按照不同的卷积 核进行分别计算,能够有效简化卷积计算,并利用量化模块将float32数据的卷积计算 转换为int8等量化后数据的卷积操作,能够有效减少运算量,从而提高数据处理速度, 节省仿真测试时间,从而快速验证AI加速卡的系统设计问题和量化后的算法精度,进 而加快软件调试和硬件开发速度。
本申请还提供一种基于ResNet50网络的AI加速卡仿真测试系统的工作方法,该工作 方法中,首先搭建基础模块,其次利用基础模块构建branch1分枝和branch2分枝,利用branch1分枝和branch2分枝组成res;然后利用res构建ResNet50网络;利用卷积模 块进行卷积计算;采用量化模块对卷积计算后的float32数据进行量化,获取量化后的 数据;根据量化后的数据,在ResNet50网络中对AI加速卡进行仿真测试。本实施例中 通过利用基础模块构建ResNet50网络,并在ResNet50网络中进行卷积等计算,能够有 效验证AI加速卡在ResNet50网络中性能,从而提高AI加速卡从设计到板卡制作的速 度。本实施例的卷积计算中,通过按照不同的卷积核进行分别计算,能够有效简化卷积 计算,从而提高仿真效率。而且本实施例中采用量化模块对卷积计算后的float32数据 进行量化,能够有效减少运算量,从而提高数据处理速度,节省仿真测试时间,从而快 速验证AI加速卡的系统设计问题和量化后的算法精度,进而加快软件调试和硬件开发 速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能 限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例, 并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有 技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种基于ResNet50网络的AI加速卡仿真测试系统的结 构示意图;
图2为本申请实施例中ResNet50网络结构示意图;
图3为本申请实施例中卷积模块的工作原理示意图;
图4为本申请实施例中量化模块的工作原理示意图;
图5为本申请实施例所提供的一种基于ResNet50网络的AI加速卡仿真测试系统的工 作方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施 例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领 域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本 申请保护的范围。
为了更好地理解本申请,下面结合附图来详细解释本申请的实施方式。
实施例一
参见图1,图1为本申请实施例所提供的一种基于ResNet50网络的AI加速卡仿真测试系统的结构示意图。
由图1可知,本实施例中基于ResNet50网络的AI加速卡仿真测试系统,主要包括:卷积模块、激活模块、池化模块、残差模块、全连接模块、softmax模块和量化模块。
本实施例采用C++编程,分别实现网络中的卷积模块、激活模块、池化模块、残差模块、全连接模块、softmax模块和量化模块等基础模块,每个模块都是一个C++类实现, 对于ResNet50网络进行分类划分,分为res1、res2、res3、res4、res5、全连接和softmax几大部分组成,用基础模块组合成res中的branch1和branch2分支,再用这些branch分分支组成的res, 从而构成ResNet50整个网络。本实施例中ResNet50网络结构示意图可以参见图2。图2中Convolution为卷积模块、Relu为激活模块、Pooling为池化模块、Elwise为残差模块、Fullconnect为全连接模块、Softmax为softmax模块、Quantization为量化模块。
继续参见图1,图1中卷积模块,用于根据量化后的数据,按照不同的卷积核进行卷积计算。
本实施例中量化后的数据包括:int8数据,float16数据或者int4数据。即:可 以利用int8数据代替float32数据,也可以采用float16数据代替float32数据,还 可以采用int4数据代替float32数据。本实施例中量化后的数据优选int8数据。
进一步地,卷积模块包括:数据获取单元、第一判断单元、拆分单元、第二判断单元、重排序单元、脉动阵列计算单元、第三判断单元、计算单元和累加单元。
其中,数据获取单元,用于获取量化后的FeatureMap数据、weights数据、biase 数据和量化参数数据;第一判断单元,用于判断weights数据是否为7*7的卷积核;拆 分单元,用于当weights数据为7*7的卷积核时,将7*7的卷积核拆分成3*3的卷积核, 并将第一FeatureMap数据拆分成第二FeatureMap数据,第一FeatureMap数据为7*7 的卷积核所匹配的FeatureMap数据,第二FeatureMap数据为与3*3的卷积核padding 尺寸相匹配的FeatureMap数据;第二判断单元,用于当weights数据不为7*7的卷积 核时,判断weights数据是否为3*3的卷积核;重排序单元,用于当weights数据为3*3 的卷积核时,将3*3的卷积核数据重排序为9*9的数据,以及将第二FeatureMap数据 的相应区域重排序为9*9的数据;脉动阵列计算单元,用于将9*9的数据进行脉动阵列 计算;第三判断单元,用于当weights数据不为3*3的卷积核时,判断weights数据是 否为1*1的卷积核;重排序单元,还用于当weights数据为1*1的卷积核时,将1*1的 卷积核数据重排序为9*9的数据;计算单元,用于对重排序后的3*3卷积核数据进行卷 积计算,获取输入通道上FeatureMap数据,FeatureMap数据的数据格式为int32;累 加单元,用于对输入通道上的FeatureMap数据进行累加,获取输出通道上的FeatureMap 数据。
本实施例中卷积模块的工作原理示意图可以参见图3。由图3可知,以量化后的数据采用int8数据为例,本实施例中卷积模块的工作过程为:
1)获取量化后的FeatureMap、weights、biase和量化参数数据。
2)判断weights是否7x7的卷积核,若是,则将7x7卷积核在右方、下方补0,使其 成为9x9的卷积核,然后按照从左到右、从上到下的顺序平分成9个3x3的卷积核,同时7x7 卷积核对应的输入featuremap按照卷积核拆分的偏移位置,拆分成9个featuremap,这9 个featuremap符合3x3卷积核的padding尺寸,不足的地方补0。
3)若不是7x7的卷积核,则继续判断是不是3x3卷积核,若是,则先将3x3的卷积核对应的featuremap依次取出11x11的区域。需要注意的是,此处11x11的区域与前11x11 会有2列或2行的重叠)。
然后将11x11区域再拆分出9个5x5区域,9个5x5区域之间会有2行货2列的重叠,5x5区域进行数据重排序为9x9,同时3x3卷积核数据重排序为9x9,经过脉动阵列使对应两个9x9的列相乘累加得出9个数,排成3x3区域,然后组合出输出featuremap。
4)若不是3x3卷积核,则继续判断是不是1x1卷积核,若是,则先将1x1的卷积核对应的featuremap依次取出9x9的区域,同时1x1卷积核排成9x9数据,9x9的81个数都是 1x1的数据,经过脉动阵列计算单元的计算,使对应两个9x9的相乘得出9x9区域,然后组 合出输出featuremap。
5)将步骤2)中7x7卷积核拆分成9个3x3卷积核,经过3x3卷积核的卷积计算之后,得到的featuremap进行累加,获取一个通道的featuremap数据,因为涉及到两个int8数 据相乘及累加,计算活动featuremap数据是int32。
6)以上所有卷积核进行卷积计算之后,加上int32的bias数据都得到一个通道上的 featuremap。
后续在量化模块中需将int32数据量化到int8数据。
继续参见1可知,本实施例中还设置有激活模块,用于利用ReLU函数进行激活操作。ReLU(rectified linear unit)函数提供了几个简单的线性变换,给定元素x,该函数定义为Relu(x)=max(x,0)。可以看出,ReLU函数只保留正数元素,并将负数元素清零。
池化模块,用于根据相应的下采样方法对数据进行降维。
根据采样方法的不同,池化模块具体采用最大值下采样池化单元,或者平均值下采 样单元。其中,最大值下采样单元,用于选择窗口中最大值作为下采样输出结果;平均值下采样单元,用于统计选择窗口中的数据,计算平均值作为下采样的输出结果。
残差模块,用于将branch分支的输入数据和残差数据进行两两加和,获取输出数据,branch分支用于组成res。
全连接模块,用于对输入层神经元和输出层神经元建立权重连接。
本实施例中全连接层是输出层中的输入层神经元和输出层神经元都有权重连接,可 以把全连接模块等同于卷积模块中的1*1卷积核。
softmax模块,用于将多个神经元的输出映射到(0,1)区间内,并在(0,1)区间 内利用公式
Figure BDA0002384963760000081
进行多分类,其中,
Figure BDA0002384963760000082
由以上公式可知,
Figure BDA0002384963760000083
Figure BDA0002384963760000084
是一个合法的概率分布。这时候,如果
Figure BDA0002384963760000085
不管
Figure BDA0002384963760000086
Figure BDA0002384963760000087
的值是多少,我们都知道图像类别为目标值的概率是80%。此外,由于
Figure BDA0002384963760000088
本实施例中softmax运算不改变预测类别输出。
量化模块,用于对卷积计算后的int32数据进行量化,获取量化后的数据。本实施例中量化模块的工作原理示意图参见图4。
实施例二
在图1-图4所示实施例的基础之上参见图5,图5为本申请实施例所提供的一种基于ResNet50网络的AI加速卡仿真测试系统的工作方法的流程示意图。
由图5可知,本实施例中的工作方法主要包括如下过程:
搭建基础模块,基础模块包括:卷积模块、激活模块、池化模块、残差模块、全连 接模块、softmax模块以及量化模块。
S1:利用基础模块构建branch1分枝和branch2分枝。
S2:利用branch1分枝和branch2分枝组成res。
S3:利用res构建ResNet50网络。
S4:利用卷积模块进行卷积计算。
具体地,步骤S4又包括如下过程:
S40:获取量化后的FeatureMap数据、weights数据、biase数据和量化参数。
S41:判断weights数据是否为7*7的卷积核。
S42:如果weights数据为7*7的卷积核,将7*7的卷积核拆分成3*3的卷积核, 同时将第一FeatureMap数据拆分成第二FeatureMap数据,第一FeatureMap数据为7*7 的卷积核所匹配的输入FeatureMap数据,第二FeatureMap数据为与3*3的卷积核 padding尺寸相匹配的FeatureMap数据。
进一步地,本实施例中将7*7的卷积核拆分成3*3的卷积核的方法,包括:
S421:将:7*7的卷积核补充为9*9的卷积核;
S422:按照从左到右和从上到下的顺序,将所述9*9的卷积核平分为9个3*3的卷积核。
将第一FeatureMap数据拆分成第二FeatureMap数据的方法,具体为:
按照卷积核拆分的偏移位置,将第一FeatureMap数据拆分成9个第二FeatureMap数据。
S43:如果weights数据不为7*7的卷积核,则判断weights数据是否为3*3的卷 积核。
S44:如果weights数据为3*3的卷积核,则将3*3的卷积核数据重排序为9*9的 数据,同时将第二FeatureMap数据的相应区域重排序为9*9的数据。
S45:如果weights数据不为3*3的卷积核,则判断weights数据是否为1*1的卷 积核。
S46:如果weights数据为1*1的卷积核,则将1*1的卷积核数据重排序为9*9的 数据。
S47:对所有9*9的数据进行脉动阵列计算。
S48:对不同卷积核进行累加处理。
具体地,步骤S48包括如下过程:
S481:将3*3卷积核对应列相乘累加;
S482:将1*1卷积核对应列相乘不累加;
S483:将7*7卷积核平分成的9个3*3的卷积核累加。
S49:对输入通道上的FeatureMap数据进行累加,获取输出通道上的FeatureMap数据。
S5:采用量化模块对卷积计算后的float32数据进行量化,获取量化后的数据。
具体地,步骤S5包括如下过程:
S501:根据层数获取量化参数;
S502:将int32数据进行右移;
S503:判断移位后的int32数据是否<0;
如果移位后的int32数据<0,执行步骤S504:对int数据取反加一;
S505:判断取反加一后的数据是否>127;
如果取反加一后的数据>127,执行步骤S506:将取反加一后的数据置为127;
也就是,利用127将int32数据截断,大于127的数置为127,小于127的数置为 -127。
否则,执行步骤S507:将取反加一后的数据与0xff的低8位数据进行与计算;
如果移位后的int32数据≥0,执行步骤S508:判断移位后的数据是否>127;
如果移位后的数据>127,执行步骤S509:将移位后的数据置为127;
否则,执行步骤S510:将移位后的数据与0xff的低8位数据进行与计算;
S511:输出量化后的数据。
其中,量化后的数据为:int8数据,float16数据或者int4数据。
继续参见图5可知,获取量化后的数据之后,执行步骤S6:根据量化后的数据,在ResNet50网络中对AI加速卡进行仿真测试。
该实施例中未详细描述的部分,在图1-图4所示的实施例中已经详细阐述,在此不再赘述。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。 对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一 般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于ResNet50网络的AI加速卡仿真测试系统,其特征在于,所述仿真测试系统包括:
卷积模块,用于根据量化后的数据,按照不同的卷积核进行卷积计算;
激活模块,用于利用ReLU函数进行激活操作;
池化模块,用于根据相应的下采样方法对数据进行降维;
残差模块,用于将branch分支的输入数据和残差数据进行两两加和,获取输出数据,所述branch分支用于组成res;
全连接模块,用于对输入层神经元和输出层神经元建立权重连接;
softmax模块,用于将多个神经元的输出映射到(0,1)区间内,并在(0,1)区间内利用公式
Figure FDA0002384963750000011
进行多分类,其中,
Figure FDA0002384963750000012
量化模块,用于对卷积计算后的int32数据进行量化,获取量化后的数据。
2.根据权利要求1所述的一种基于ResNet50网络的AI加速卡仿真测试系统,其特征在于,所述卷积模块包括:
数据获取单元,用于获取量化后的FeatureMap数据、weights数据、biase数据和量化参数数据;
第一判断单元,用于判断weights数据是否为7*7的卷积核;
拆分单元,用于当weights数据为7*7的卷积核时,将所述7*7的卷积核拆分成3*3的卷积核,并将第一FeatureMap数据拆分成第二FeatureMap数据,所述第一FeatureMap数据为所述7*7的卷积核所匹配的FeatureMap数据,所述第二FeatureMap数据为与3*3的卷积核padding尺寸相匹配的FeatureMap数据;
第二判断单元,用于当weights数据不为7*7的卷积核时,判断weights数据是否为3*3的卷积核;
重排序单元,用于当weights数据为3*3的卷积核时,将所述3*3的卷积核数据重排序为9*9的数据,以及将第二FeatureMap数据的相应区域重排序为9*9的数据;
脉动阵列计算单元,用于将所述9*9的数据进行脉动阵列计算;
第三判断单元,用于当weights数据不为3*3的卷积核时,判断weights数据是否为1*1的卷积核;
所述重排序单元,还用于当weights数据为1*1的卷积核时,将所述1*1的卷积核数据重排序为9*9的数据;
计算单元,用于对重排序后的3*3卷积核数据进行卷积计算,获取输入通道上FeatureMap数据,所述FeatureMap数据的数据格式为int32;
累加单元,用于对输入通道上的FeatureMap数据进行累加,获取输出通道上的FeatureMap数据。
3.根据权利要求1所述的一种基于ResNet50网络的AI加速卡仿真测试系统,其特征在于,所述池化模块具体为最大值下采样池化单元或平均值下采样单元;
所述最大值下采样单元,用于选择窗口中最大值作为下采样输出结果;
所述平均值下采样单元,用于统计选择窗口中的数据,计算平均值作为下采样的输出结果。
4.根据权利要求1-3中任一所述的一种基于ResNet50网络的AI加速卡仿真测试系统,其特征在于,所述量化后的数据为:int8数据,float16数据或者int4数据。
5.一种基于ResNet50网络的AI加速卡仿真测试系统的工作方法,其特征在于,所述工作方法包括:
搭建基础模块,所述基础模块包括:卷积模块、激活模块、池化模块、残差模块、全连接模块、softmax模块以及量化模块;
利用所述基础模块构建branch1分枝和branch2分枝;
利用所述branch1分枝和branch2分枝组成res;
利用所述res构建ResNet50网络;
利用卷积模块进行卷积计算;
采用量化模块对卷积计算后的float32数据进行量化,获取量化后的数据;
根据量化后的数据,在ResNet50网络中对AI加速卡进行仿真测试。
6.根据权利要求5所述的一种基于ResNet50网络的AI加速卡仿真测试系统的工作方法,其特征在于,所述利用卷积模块进行卷积计算,包括:
获取量化后的FeatureMap数据、weights数据、biase数据和量化参数;
判断weights数据是否为7*7的卷积核;
如果weights数据为7*7的卷积核,将所述7*7的卷积核拆分成3*3的卷积核,同时将第一FeatureMap数据拆分成第二FeatureMap数据,所述第一FeatureMap数据为所述7*7的卷积核所匹配的输入FeatureMap数据,所述第二FeatureMap数据为与3*3的卷积核padding尺寸相匹配的FeatureMap数据;
如果weights数据不为7*7的卷积核,则判断weights数据是否为3*3的卷积核;
如果weights数据为3*3的卷积核,则将所述3*3的卷积核数据重排序为9*9的数据,同时将第二FeatureMap数据的相应区域重排序为9*9的数据;
如果weights数据不为3*3的卷积核,则判断weights数据是否为1*1的卷积核;
如果weights数据为1*1的卷积核,则将所述1*1的卷积核数据重排序为9*9的数据;
对所有9*9的数据进行脉动阵列计算;
对不同卷积核进行累加处理;
对输入通道上的FeatureMap数据进行累加,获取输出通道上的FeatureMap数据。
7.根据权利要求6所述的一种基于ResNet50网络的AI加速卡仿真测试系统的工作方法,其特征在于,将所述7*7的卷积核拆分成3*3的卷积核的方法,包括:
将所述7*7的卷积核补充为9*9的卷积核;
按照从左到右和从上到下的顺序,将所述9*9的卷积核平分为9个3*3的卷积核。
8.根据权利要求6所述的一种基于ResNet50网络的AI加速卡仿真测试系统的工作方法,其特征在于,所述将第一FeatureMap数据拆分成第二FeatureMap数据的方法,具体为:
按照卷积核拆分的偏移位置,将第一FeatureMap数据拆分成9个第二FeatureMap数据。
9.根据权利要求6所述的一种基于ResNet50网络的AI加速卡仿真测试系统的工作方法,其特征在于,对不同卷积核进行累加处理的方法包括:
将3*3卷积核对应列相乘累加;
将1*1卷积核对应列相乘不累加;
将7*7卷积核平分成的9个3*3的卷积核累加。
10.根据权利要求5-9中任一所述的一种基于ResNet50网络的AI加速卡仿真测试系统的工作方法,其特征在于,所述采用量化模块对卷积计算后的float32数据进行量化,获取量化后的数据,包括:
根据层数获取量化参数;
将int32数据进行右移;
判断移位后的int32数据是否<0;
如果移位后的int32数据<0,对int数据取反加一;
判断取反加一后的数据是否>127;
如果取反加一后的数据>127,将取反加一后的数据置为127;
否则,将取反加一后的数据与0xff的低8位数据进行与计算;
如果移位后的int32数据≥0,判断移位后的数据是否>127;
如果移位后的数据>127,将移位后的数据置为127;
否则,将移位后的数据与0xff的低8位数据进行与计算;
输出量化后的数据,所述量化后的数据为:int8数据,float16数据或者int4数据。
CN202010094700.7A 2020-02-16 2020-02-16 一种基于ResNet50网络的AI加速卡仿真测试系统及其工作方法 Active CN111258839B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010094700.7A CN111258839B (zh) 2020-02-16 2020-02-16 一种基于ResNet50网络的AI加速卡仿真测试系统及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010094700.7A CN111258839B (zh) 2020-02-16 2020-02-16 一种基于ResNet50网络的AI加速卡仿真测试系统及其工作方法

Publications (2)

Publication Number Publication Date
CN111258839A true CN111258839A (zh) 2020-06-09
CN111258839B CN111258839B (zh) 2022-11-29

Family

ID=70949278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010094700.7A Active CN111258839B (zh) 2020-02-16 2020-02-16 一种基于ResNet50网络的AI加速卡仿真测试系统及其工作方法

Country Status (1)

Country Link
CN (1) CN111258839B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114648101A (zh) * 2022-05-13 2022-06-21 杭州研极微电子有限公司 基于transformer结构的softmax函数量化实现方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048279A (ko) * 2017-10-31 2019-05-09 세종대학교산학협력단 합성곱 신경망 기반의 영상 처리 방법 및 장치
CN109948784A (zh) * 2019-01-03 2019-06-28 重庆邮电大学 一种基于快速滤波算法的卷积神经网络加速器电路
CN110516334A (zh) * 2019-08-16 2019-11-29 浪潮电子信息产业股份有限公司 基于硬件环境的卷积计算仿真测试方法、装置及相关设备
CN110598839A (zh) * 2018-06-12 2019-12-20 华为技术有限公司 卷积神经网络系统和卷积神经网络量化的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048279A (ko) * 2017-10-31 2019-05-09 세종대학교산학협력단 합성곱 신경망 기반의 영상 처리 방법 및 장치
CN110598839A (zh) * 2018-06-12 2019-12-20 华为技术有限公司 卷积神经网络系统和卷积神经网络量化的方法
CN109948784A (zh) * 2019-01-03 2019-06-28 重庆邮电大学 一种基于快速滤波算法的卷积神经网络加速器电路
CN110516334A (zh) * 2019-08-16 2019-11-29 浪潮电子信息产业股份有限公司 基于硬件环境的卷积计算仿真测试方法、装置及相关设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114648101A (zh) * 2022-05-13 2022-06-21 杭州研极微电子有限公司 基于transformer结构的softmax函数量化实现方法和装置

Also Published As

Publication number Publication date
CN111258839B (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
CN108985317B (zh) 一种基于可分离卷积和注意力机制的图像分类方法
US20200302265A1 (en) Convolutional Neural Network-Based Image Processing Method And Image Processing Apparatus
Radzi et al. Character recognition of license plate number using convolutional neural network
CN109949224B (zh) 一种基于深度学习的联级超分辨率重建的方法及装置
CN112016507A (zh) 基于超分辨率的车辆检测方法、装置、设备及存储介质
CN111914997B (zh) 训练神经网络的方法、图像处理方法及装置
CN112348119B (zh) 基于胶囊网络的图像分类方法、存储介质及电子设备
CN112541877A (zh) 基于条件生成对抗网络的去模糊方法、系统、设备及介质
CN112183295A (zh) 行人重识别方法、装置、计算机设备及存储介质
CN113469074B (zh) 基于孪生注意力融合网络的遥感图像变化检测方法及系统
CN111062324A (zh) 人脸检测方法、装置、计算机设备和存储介质
CN111258839B (zh) 一种基于ResNet50网络的AI加速卡仿真测试系统及其工作方法
CN111259838B (zh) 服务机器人服务环境下深度理解人体行为的方法及系统
CN111783935A (zh) 卷积神经网络构建方法、装置、设备及介质
CN116863194A (zh) 一种足溃疡图像分类方法、系统、设备及介质
CN115115924A (zh) 基于ir7-ec网络的混凝土图像裂缝类型迅捷智能识别方法
CN111325161A (zh) 一种基于注意力机制的人脸检测神经网络的构建方法
CN112308227B (zh) 神经网络架构搜索方法、装置、终端设备以及存储介质
CN117036806A (zh) 一种基于双重复用残差网络的物体识别方法
CN109934132B (zh) 基于随机丢弃卷积数据的人脸识别方法、系统及存储介质
CN115439849A (zh) 基于动态多策略gan网络的仪表数字识别方法及系统
CN115861062A (zh) 多尺度学习小波注意力机制网络及图像超分辨率重建方法
CN107633010B (zh) 一种复杂造型grc板块图像的识别方法和系统
CN114444813A (zh) 基于深度学习的交通流量预测方法
WO2021027163A1 (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