一种深度学习处理器性能测试与评价方法

文档序号:32661884发布日期:2022-12-23 23:50阅读:85来源:国知局
技术简介:
本专利针对现有深度学习处理器性能评估方法不全面的问题,提出三阶段测试方案:通过通用矩阵乘法测试评估基础算力,结合稀疏性指标提升公平性;利用Roofline模型分析单层网络的访存与计算瓶颈;采用分层延时分析优化常用网络模型的推理性能,实现对硬件系统的精准评估与优化指导。
关键词:深度学习处理器,性能评估方法

1.本发明属于人工智能深度学习技术领域,具体涉及一种深度学习处理器性能测试与评价方法。


背景技术:

2.近年来,人工智能加速发展,智能应用领域快速拓展,即将演进形成颠覆式科技变革,“智能化革命”正在孕育。深度学习作为当前人工智能技术的重要分支,在诸如图像识别、目标跟踪、语音处理等领域发挥着重要作用。专用的深度学习处理器作为深度学习算法应用的物质载体应运而生。对于深度学习处理器性能的测试与评价的研究,一方面能够支撑比对各种深度学习处理器的性能优劣,另一方面能够支撑引领深度学习处理器的发展与研制,对于人工智能技术的发展具有重要意义。
3.当前的深度学习处理器性能测试,大都采用基准测试方法,即将常用的深度学习算法模型以及算子等作为基准测试集,然后使用深度学习处理器计算系统运行基准测试集,将各个测试的运行结果进行比较,从而对各类深度学习处理器的性能进行比对,从而判断各自的性能优劣。
4.对于mlperf基准测试集等的一系列基准测试集,包含了机器学习各个领域下的常用算法模型,主要测试智能应用场景下的深度学习处理器表现(能耗、运算速度、吞吐率),其聚集于具体的应用场景,而缺少对于深度学习处理器基础运算能力的测试,难以支撑全面公平的深度学习处理器测试评价);同时,mlperf基准测试集关注的指标较简单,难以指导硬件设计人员对系统或体系结构的优化。
5.ai-matrix基准测试集里面包含了micro benchmarks、layer-based benchmarks、macro benchmarks以及synthetic benchmarks四层结构,分别采用基础的矩阵乘法测试、cnn与rnn的常用运算层、常用的网络模型以及基于运算特征合成的测试对处理器的性能进行全面测评。但是其评价指标仅仅是延时以及吞吐率等基础指标,难以支撑公平全面测评以及指导硬件设计人员对系统或体系结构的优化的目的。


技术实现要素:

6.本发明的目的是提供一种深度学习处理器性能测试与评价方法,实现对于深度学习处理器公平完备的性能测试,同时指导硬件设计人员对深度学习处理器的优化。
7.为达到上述目的,实现上述功能,本发明的技术方案包括如下步骤:
8.步骤1、通用矩阵乘法测试与评估
9.1.1通用矩阵乘法测试的实现
10.1.1.1从图像识别、目标跟踪和语音处理的深度学习训练算法中抽取出稠密的通用矩阵乘法运算相关参数,包括通用矩阵的规模参数、转置参数与运算精度;将上述相关参数保存在参数文件中,用于后续读取或修改拓展;
11.1.1.2从图像识别、目标跟踪和语音处理的深度学习算法模型在推理过程中抽取
通用矩阵乘法相关参数,包括通用矩阵的规模参数、转置参数、运算精度以及矩阵稀疏性;将上述相关参数保存在参数文件中,用于后续读取或修改拓展;
12.1.1.3完成通用矩阵乘法测试,该测试包含了通用矩阵乘法函数,支持读取调用参数文件中的相关参数,并生成随机数从而对矩阵的各个元素进行赋值;对于具有稀疏性的通用矩阵,还需要按照其稀疏性对相应比例的矩阵元素赋值0;
13.1.2设计通用矩阵乘法测试的评价指标,依据评价指标对深度学习处理器通用矩阵乘法测试结果进行评估,评价指标包括:
14.功耗:运行测试程序时所消耗的功耗;
15.延时:运行测试程序时所需的平均延时;
16.吞吐率:每秒钟运行的平均浮点乘加数量;
17.考虑稀疏的吞吐率:每秒钟运行的平均非0浮点乘加数量;
18.能量效率值:消耗的能量/非0的参数值比例;
19.存储带宽:dram读写数量/非0的参数值比例。
20.步骤2、深度学习单层网络测试与评估
21.2.1、单层网络结构测试的实现
22.2.1.1抽取当前常用的网络模型的每一层网络,包括基础运算算子与对应的相关参数;将上述相关参数保存成参考文件,用于后续读取或修改拓展;
23.2.1.2实现单层网络结构测试,该测试包含每种网络的基础算子函数,将参数文件中的相关参数读入测试所对应的基础算子函数中,生成随机数从而对单层网络结构中的各个元素进行赋值;
24.2.2、设计单层网络结构测试的评价指标,依据下述指标对单层网络结构测试结果进行评估;
25.引入roofline模型计算,得到计算平台的理论带宽约束性能区域与理论算力约束性能区域,以及单层网络测试的理论性能:
[0026][0027]
其中,i为计算密度,β为宽带,π为最大算力,p为理论的吞吐率,单层网络的计算密度i=计算量/访存量,计算量为单层网络测试程序所需的浮点运算次数,访存量为单层网络测试程序所需的输入输出访存空间。
[0028]
单层网络测试程序运行时获取的性能指标包括:
[0029]
延时:运行测试程序时所需的平均延时;
[0030]
吞吐率:每秒钟运行的平均浮点乘加数量;
[0031]
将实际运行的吞吐率与理论性能进行比较,如果无法达到理论性能,则说明深度学习处理器存在访存或计算瓶颈。
[0032]
步骤3、常用网络模型测试与评估
[0033]
3.1常用网络模型测试的实现
[0034]
3.1.1选取常用于语音处理、图像识别各类不同深度学习应用领域的常用网络模型,作为常用网络模型测试集,每种网络模型又分为训练测试与推理测试,因此常用网络模型测试的实现分为训练测试集实现与推理测试集实现。
[0035]
3.1.2训练测试集实现:每种网络模型的训练测试采用封闭型分区设计,即要求使用相同模型、优化器与训练数据集,并限制batch大小或学习率等超参数的值,从而支持深度学习处理器训练性能的公平比较;
[0036]
3.1.3推理测试集实现:每种网络模型的推理测试包含了网络模型、预设的参数值以及数据集,能够在特定数据集上测试深度学习处理器的模型推理性能;
[0037]
3.2设计常用网络模型测试的评价指标,并依据下述指标对常用网络模型测试结果进行评估
[0038]
3.2.1训练测试集评价指标与评估
[0039]
对于训练测试集的每一个测试程序,其评价指标是在特定数据集上训练一个模型使其达到目标质量时所需的时间;训练测试集的最终训练结果是由指定次数的基准测试时间平均得出的,测试即运行若干次取训练测试时间的平均值,训练测试时间包含了模型构建,数据预处理,训练以及质量测试时间;
[0040]
3.2.2推理测试集评价指标与评估
[0041]
对于推理测试集的每一个测试程序,其评价标准是在特定数据集上测量模型的推理性能,包括平均延时和吞吐量;另外,为了更好地判断网络模型的性能瓶颈,支撑设计人员对于系统或体系结构进行优化,还引入了网络模型中每一层的延时作为性能指标。
[0042]
本发明的有益效果:
[0043]
与现有深度学习处理器基准测试性能测试与评价方法相比,本发明提出的技术方案将深度学习处理器基准测试性能测试分为三个测试部分:通用矩阵乘法测试、深度学习单层网络测试与常用网络模型测试,并针对这三部分测试结果开发了相应的评价指标,对于通用矩阵乘法测试结果的评价指标,引入了基于稀疏性的性能指标,从而能够更加公平地对硬件的基础算力进行评价;对于深度学习单层网络测试的评价指标,引入了roofline模型从而能够比较理论性能与实际性能的差异,更好支撑了对于硬件的优化;对于常用网络模型测试结果的评价指标,在分开训练与测试两类应用场景的指标外,还引入了对于每层网络的延时指标,从而判断网络模型的性能瓶颈,更好支撑设计人员对于系统或体系结构进行优化。
附图说明
[0044]
图1为本发明通用矩阵乘法测试与评估流程示意图;
[0045]
图2为本发明深度学习单层网络测试与评估流程示意图;
[0046]
图3为本发明常用网络模型测试与评估流程示意图。
具体实施方式
[0047]
下面对本发明的实施过程就行详细的解释和说明。
[0048]
本发明的实现思路陈述如下,本发明的深度学习处理器基准性能测试与评价方法,包含了三个测试,分别为通用矩阵乘法测试、深度学习单层网络测试与常用网络模型测试。设置这三类测试的设置基于如下考虑:
[0049]
首先,对于通用矩阵乘法测试,深度学习算法中常用的基本算子一般都可以转化为通用矩阵乘法,通用矩阵乘法是深度学习处理器最基本最常用的运算,因此采用通用矩
阵乘法测试能够对深度学习处理器的基础运算能力进行测试;
[0050]
其次,对于深度学习单层网络测试,深度学习算法中包含有不同类型深度学习单层网络,这些深度学习单层网络的基本算子与结构的不同,导致了其运算特征(计算量与访存量)的不同。通过测试并分析不同的深度学习单层网络的性能与运算特征,能够分析深度学习处理器的性能瓶颈,为硬件设计人员对于系统或体系结构的优化提供支撑;
[0051]
最后,对于常用的网络模型测试,其主要是用于测试针对深度学习处理器实际智能场景下网络模型的性能。
[0052]
同时,这三类测试具有了不同的评价指标体系,能够实现深度学习处理器的全面测评(基础运算能力与实际ai应用处理能力),以及指导设计人员对硬件的系统或体系结构进行优化。对于通用矩阵乘法测试,在传统的性能指标基础上引入了基于稀疏性的性能指标,更能够公平地对深度学习处理器的基础运算能力进行评价;对于深度学习单层网络测试对应的评价指标,引入了roofline模型从而能够比较理论性能与实际性能的差异,更好支撑了对于硬件的优化;对于常用网络模型测试与对应的评价指标,在分开训练与测试两类应用场景的指标外,还引入了对于每层网络的延时指标,从而判断网络模型的性能瓶颈,更好支撑设计人员对于系统或体系结构进行优化。
[0053]
下面将本发明具体的实现步骤详细陈述如下:
[0054]
步骤1、通用矩阵乘法测试与评估
[0055]
本步骤的具体实现流程如图1所示,包括如下步骤:
[0056]
1.1通用矩阵乘法测试的实现
[0057]
1.1.1从常用的从图像识别、目标跟踪和语音处理的深度学习训练算法中抽取出稠密的通用矩阵乘法运算相关参数,包括矩阵的规模参数(m、n、k)与转置参数(a transpose、b transpose)、运算精度(半精度、单精度、双精度等);将上述相关参数保存到如excel参数文件中,方便后续读取或修改拓展;
[0058]
1.1.2从常用的从图像识别、目标跟踪和语音处理的深度学习算法模型在推理过程中抽取通用矩阵乘法相关参数,包括矩阵的规模参数(m、n、k)与转置参数(a transpose、b transpose)、运算精度(半精度、单精度、双精度等);设置通用矩阵乘法的稀疏性(一般为90%-95%);将上述相关参数保存到如excel参数文件中,方便后续读取或修改拓展;
[0059]
1.1.3实现通用矩阵乘法测试,该包含了通用矩阵乘法函数,支持读取调用参数文件中的相关参数,并生成随机数从而对矩阵的各个元素进行赋值。对于具有稀疏性的通用矩阵,还需要按照其稀疏性对相应比例的矩阵元素赋值0。
[0060]
1.2设计通用矩阵乘法测试的评价指标,运行通用矩阵乘法测试并计算下述指标,依据指标对深度学习处理器通用矩阵乘法测试结果进行评估。
[0061]
功耗:运行测试时所消耗的功耗;
[0062]
延时:运行测试时所需的平均延时;
[0063]
吞吐率:每秒钟运行的平均浮点乘加数量;
[0064]
考虑稀疏的吞吐率:每秒钟运行的平均非0浮点乘加数量;
[0065]
能量效率值:消耗的能量/非0的参数值比例;
[0066]
存储带宽:dram读写数量/非0的参数值比例。
[0067]
其中,考虑稀疏的吞吐率、能量效率值与存储带宽这三个指标均考虑了矩阵的稀
疏性,这是因为实际ai应用中,推理部分一般都引入了稀疏化的运算,实际上矩阵中大部分元素的值都为0。因此为了公平评价深度学习处理器实际的运算能力,需要考虑其实际的运算能力(即非0参数间的矩阵乘法)。
[0068]
步骤2、深度学习单层网络测试与评估
[0069]
本步骤的具体实现流程如图2所示,包括如下步骤:
[0070]
2.1、单层网络结构测试的实现
[0071]
2.1.1抽取当前常用的网络模型(如google net、resnet、vgg、alexnet等网络)的每一层网络,包括基础运算算子(如conv层、conv2d层、全连接层、激活层(relu层、sigmoid层、softmax层、tanh层)、bn层、lrn层、pooling层(max pooling层与average pooling层)、lstm层、gru层、rnn层)与对应的参数(如对于conv运算,抽取

作为参数);将上述相关参数保存到如excel等文件中作为参考文件,方便后续读取或修改拓展;
[0072]
2.1.2实现单层网络结构测试,测试包含每种网络的基础算子函数,将参数文件中的相关参数读入测试对应的基础算子函数中,生成随机数从而对各个元素进行赋值。
[0073]
2.2、设计单层网络结构测试的评价指标,运行单层网络结构测试,依据下述指标对单层网络结构测试结果进行评估。
[0074]
深度学习单层网络测试实现后,即可以使用深度学习处理器运行这些测试方法,从而对深度学习处理器进行评价。这一部分主要是测试计算平台针对常用的网络单层结构运行的性能,找出硬件设计的性能瓶颈,从而指导设计人员对系统或体系结构进行优化。为了达到此目的,引入了roofline模型计算,得到计算平台的理论带宽约束性能区域与理论的算力约束性能区域,以及单层网络测试的理论性能:
[0075]
((i为计算密度,β为带宽,π为最大算力)),其中单层网络的计算密度i=计算量/访存量。实际运行时关注的指标包括:
[0076]
延时:运行测试时所需的平均延时;
[0077]
吞吐率:每秒钟运行的平均浮点乘加数量。
[0078]
实际运行的吞吐率与理论性能进行比较,如果无法达到理论性能,则说明深度学习处理器存在访存或计算瓶颈,从而为设计人员对于系统或体系结构的优化进行支撑。
[0079]
步骤3、常用网络模型测试与评估
[0080]
本步骤的具体实现流程如图3所示,包括如下步骤:
[0081]
3.1常用网络模型测试的实现
[0082]
3.1.1选取如lenet-5、rnn、alexnet、vgg、resnet、faster r-cnn、deep face recognition、deconvnet、fcln、s2vt、syntaxnet等常用于语音处理、图像识别等各类不同深度学习应用领域的常用网络模型,作为常用网络模型测试集,每种网络模型又分为训练测试与推理测试,因此常用网络模型测试的实现分为训练测试集实现与推理测试集实现。
[0083]
3.1.2训练测试集实现:每种网络模型的训练测试采用封闭型分区设计,即要求使用相同模型、优化器与训练数据集,并限制batch大小或学习率等超参数的值,从而支持深度学习处理器训练性能的公平比较。
[0084]
3.1.3推理测试集实现:每种网络模型的推理测试包含了网络模型、预设的参数值以及数据集,能够在特定数据集上测试深度学习处理器的模型推理性能。
[0085]
3.2设计常用网络模型测试的评价指标,运行常用网络模型测试,依据下述指标对常用网络模型测试结果进行评估。
[0086]
3.2.1训练测试集指标与评价
[0087]
对于训练测试集的每一个测试,其评价标准是在特定数据集上训练一个模型使其达到目标质量(quality target)时所需的时间。由于机器学习任务的训练时间有很大差异,因此训练测试集的最终训练结果是由指定次数的基准测试时间平均得出的,其中会去掉最低和最高的数字,一般是运行若干次取训练测试时间的平均值,训练时间包含了模型构建,数据预处理,训练以及质量测试时间。
[0088]
3.2.2推理测试集指标与评价
[0089]
对于推理测试集的每一个测试,其评价标准是在特定数据集上测量模型的推理性能,包括平均延时和吞吐量。另外,为了更好地判断网络模型的性能瓶颈,支撑设计人员对于系统或体系结构进行优化,还引入了网络模型中每一层的延时作为性能指标。
[0090]
综上,本发明所述的一种深度学习处理器基准性能测试与评价方法,包含了三个测试步骤分别为通用矩阵乘法测试、深度学习单层网络测试与常用网络模型测试,从而对深度学习处理器的基础运算能力与硬件系统的实际智能场景下网络应用处理能力进行评价,并且支撑硬件设计人员对于系统或体系结构的优化进行指导。
当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!