多带宽目标的加速器效能测试方法技术

技术编号:21431808 阅读:19 留言:0更新日期:2019-06-22 11:48
本发明专利技术公开了一种多带宽目标的加速器效能测试方法,目的是优化多带宽目标加速器的结构设计空间,对吞吐率和MAC利用率进行评测。技术方案是先确定测试用例CNN的属性参数,并确定加速器MAC阵列的列数和行数;然后测试加速器对CNN每个卷积层的效能和所有卷积层的总效能,测试加速器对CNN每个池化层的效能和所有池化层的总效能,测试加速器对CNN每个全连接层的效能和所有全连接层的总效能,最后测试加速器计算CNN所有卷积层、池化层和全连接层的吞吐率和MAC利用率。采用本发明专利技术能根据加速器带宽约束等条件合理适配MAC阵列的列数和行数,使加速器效能最大化,且可快速评测加速器在多目标带宽约束下的吞吐率和MAC利用率,优化加速器的结构设计空间。

【技术实现步骤摘要】
多带宽目标的加速器效能测试方法
本专利技术涉及面向计算密集型应用计算加速器的性能测试方法,是一种根据加速器阵列的规模和数据位宽进行加速器效能评测的方法。
技术介绍
大规模深度神经网络为核心的图像识别、语音处理、文本挖掘等应用通常都是计算和访存密集型的应用,对高性能计算硬件的需求与日俱增。从以高性能嵌入式平台为主要承载的终端智能推理,到更加注重小型化、一体化的“微”端智能应用,不同规模、不同场景的智能应用对智能处理芯片延迟、吞吐率等的需求各不相同。面向终端推理的智能芯片构架及测试方法必须能够根据应用性能和代价需求多尺度调节体系结构。随着神经网络深度的不断加大和应用的不断复杂化,人工神经网络所需的模型参数越来越多,所处理的数据越来越大,这些都给计算所需的访存带宽带来了巨大的压力,在传统冯·诺依曼结构下,大多数神经网络应用都成为访存受限型的密集计算问题。当前,定制的智能加速器已经成为优化图像识别、语音处理、文本挖掘等应用最有效的途径之一,但定制结构的开发周期很长,常常涉及应用分析、结构设计、逻辑设计、电路优化、综合优化及投片生产等诸多漫长的设计流程,针对不同的应用规模和应用特征,为取得较优的设计结果,能够优化实现以神经网络为核心的定制加速器的设计过程必须是结构建模和性能测试评估相互迭代设计的过程,在加速器逻辑实现之前根据加速器结构进行性能建模,结合嵌入电路的测试方法,能够在逻辑设计前后更方便准确地评估加速器性能,指导加速器的设计优化。根据对卷积神经网络CNN(ConvolutionalNeuralNetwork)中运算量的研究,卷积运算占据CNN运算量的90%。刘志强等人发表在Electronics期刊上的《面向二维与三维卷积神经网络的FPGA加速器架构设计》论文(Liu,Z.;Chow,P.;Xu,J.;Jiang,J.;Dou,Y.;Zhou,J.AUniformArchitectureDesignforAccelerating2Dand3DCNNsonFPGAs.Electronics2019,8,65)(称为
技术介绍
1),提出了一种加速器结构。此种加速器为面向深度神经网络的通用矩阵乘法GEMM(GeneralMatrixMultiplication)硬件加速器。深度神经网络的GEMM运算方法如图1所示,卷积层权值W大小为m×c×k×k,输入特征图X大小为c×h×w,W与X进行卷积运算得到输出特征图Y,Y的大小为m×h×w。其中m为卷积层卷积核的个数,c为输入特征图通道数,k为卷积核大小,h为输入与输出特征图高,w为输入与输出特征图宽,卷积运算的GEMM方法将权值W展开为权值矩阵,将特征图X压缩并重组为特征图矩阵,将权值矩阵与特征图矩阵进行矩阵乘法,即可得到输出特征图Y的展开形式即输出特征图矩阵。图2为执行上述卷积GEMM运算的加速器硬件框图。该加速器的运算逻辑包括乘累加单元MAC(MultiplyAndAccumulate)阵列、权值矩阵缓冲、特征图矩阵缓冲、输出特征图矩阵缓冲。MAC阵列中的每个MAC进行单元流水操作,实现每时钟周期完成1次乘法1次加法的运算。在进行卷积神经网络运算时,MAC阵列从内存获取运算所需要的数据W与X,分别按照图1中的方式展开重组,并分别存储于加速器的权值矩阵缓冲、特征图矩阵缓冲中,运算后将结果Y输出到输出特征图矩阵缓冲中。此类加速器结构实现可伸缩扩展的MAC阵列对卷积神经网络各层的运算,具有可高效处理各类卷积运算、受硬件资源限制小、MAC阵列长和宽可以灵活配置等特点。是目前卷积神经网络加速领域常用的一种加速器结构。但受限于应用场景及成本代价,该加速器的访存带宽成为限制加速器效能发挥的重要因素。访存带宽的不同会导致加速器的最优MAC阵列配置和加速效能有所不同,即虽然MAC阵列中MAC的总数是固定的,但阵列的长mc和宽mr需要根据访存带宽来确定。因此这类加速器也叫多带宽目标的加速器。目前大多数多带宽目标的加速器都面向特定的应用领域设计,领域应用的规模决定了加速器的计算规模、存储带宽、通信能力以及执行方式等,也一定程度上决定了加速器的性能级别。针对访存带宽约束,为多带宽目标的加速器建立基于结构模型的评测方法,可以优化加速器的结构设计空间。因此,如何实现对包括吞吐率和MAC利用率在内的多带宽目标加速器结构效能的快速评测,是本领域技术人员需要攻克的技术难题。目前还没有公开报导涉及此类加速器的效能评测方法。
技术实现思路
本专利技术要解决的技术问题是,提出一种多带宽目标的加速器效能测试方法,解决优化多带宽目标加速器的结构设计空间的问题,并对包括吞吐率和MAC利用率在内的多带宽目标加速器结构效能进行快速评测,其中吞吐率表示加速器每秒运算的乘累加(MAC)操作的个数。特别地,本专利技术针对
技术介绍
1中提出的加速器结构,根据不同卷积规模合理适配乘法阵列,给出此类加速器效能的计算方法。本专利技术能直接评测多带宽目标的加速器在多目标带宽约束下可扩展计算系统的性能(吞吐率和MAC利用率)。具体技术方案为:第一步,从当前广泛使用的卷积神经网络模型(如AlexNet、VGG16、C3D)中挑选一个卷积神经网络作为智能加速器效能测试用例CNN。对测试用例CNN进行预处理,确定测试用例CNN每层的属性参数。具体方法如下:令测试用例CNN的层数为N,它包括Nc个卷积层、Np个池化层、Nfc个全连接层。N、Nc、Np、Nfc为正整数,并且满足N=Nc+Np+Nfc。1.1定义卷积神经网络层序数变量i=1,定义卷积层计数循环变量i1=1,定义池化层计数循环变量i2=1,定义全连接层计数循环变量i3=1。1.2若卷积神经网络的第i层为卷积层,转至第1.3步;若第i层为池化层,转至第1.5步;若第i层为全连接层,转至第1.7步。1.3根据CNN的描述提取第i1个卷积层的如下属性:1.3.1记录第i层的输入特征图高Ixi1;1.3.2记录第i层的输入特征图宽Iyi1;1.3.3记录第i层的输入特征图通道数(即卷积核通道数)Ici1;1.3.4记录第i层卷积核大小ki1;1.3.5记录第i层卷积核个数(即卷积输出通道数)Oci1;1.3.6记录第i层输入特征图行列方向填充的个数padci1;1.3.7记录第i层卷积核的跳步数strdci1;1.3.8记录第i层输出特征图高Oxi1;1.3.9记录第i层输出特征图宽Oyi1。1.4.令i1=i1+1;转到第1.9步。1.5提取第i2个池化层的如下属性:1.5.1记录第i层的输入特征图高Ipxi2;1.5.2记录第i层的输入特征图宽Ipyi2;1.5.3记录第i层的输入特征图通道数Ipci2;1.5.4记录第i层池化规模的大小pi2;1.5.5记录第i层输入特征图行列方向填充数padpi2;1.5.6记录第i层池化操作的跳步数strdpi2;1.5.7记录第i层输出特征图高Opxi2;1.5.8记录第i层输出特征图宽Opyi2。1.6令i2=i2+1;转到第1.9步;1.7提取第i3全连接层的如下属性:1.7.1记录第i层全连接操作输入节点个数为Fini3;1.7.2记录第i层全连接操作输出节点个数为Fouti3;1.8令i3=i3+1;转到第1.9步;1.9令i=i+1,若本文档来自技高网
...

【技术保护点】
1.一种多带宽目标的加速器效能测试方法,其特征在于包括以下步骤:第一步,从卷积神经网络模型中挑选一个卷积神经网络作为智能加速器效能测试用例CNN,对测试用例CNN进行预处理,确定测试用例CNN每层的属性参数,具体方法如下:令测试用例CNN的层数为N,它包括Nc个卷积层、Np个池化层、Nfc个全连接层,N、Nc、Np、Nfc为正整数,并且满足N=Nc+Np+Nfc;1.1 定义卷积神经网络层序数变量i=1,定义卷积层计数循环变量i1=1,定义池化层计数循环变量i2=1,定义全连接层计数循环变量i3=1;1.2 若卷积神经网络的第i层为卷积层,转至第1.3步;若第i层为池化层,转至第1.5步;若第i层为全连接层,转至第1.7步;1.3 根据CNN的描述提取第i1个卷积层的如下属性:1.3.1 记录第i层的输入特征图高Ixi1;1.3.2 记录第i层的输入特征图宽Iyi1;1.3.3 记录第i层的输入特征图通道数即卷积核通道数Ici1;1.3.4 记录第i层卷积核大小ki1;1.3.5 记录第i层卷积核个数即卷积输出通道数Oci1;1.3.6 记录第i层输入特征图行列方向填充的个数padci1;1.3.7 记录第i层卷积核的跳步数strdci1;1.3.8 记录第i层输出特征图高Oxi1;1.3.9 记录第i层输出特征图宽Oyi1;1.4.令i1=i1+1;转到第1.9步;1.5 提取第i2个池化层的如下属性:1.5.1 记录第i层的输入特征图高Ipxi2;1.5.2 记录第i层的输入特征图宽Ipyi2;1.5.3 记录第i层的输入特征图通道数Ipci2;1.5.4 记录第i层池化规模的大小pi2;1.5.5 记录第i层输入特征图行列方向填充数padpi2;1.5.6 记录第i层池化操作的跳步数strdpi2;1.5.7 记录第i层输出特征图高Opxi2;1.5.8 记录第i层输出特征图宽Opyi2;1.6 令i2=i2+1;转到第1.9步;1.7 提取第i3全连接层的如下属性:1.7.1 记录第i层全连接操作输入节点个数为Fini3;1.7.2 记录第i层全连接操作输出节点个数为Fouti3;1.8 令i3=i3+1;转到第1.9步;1.9 令i=i+1,若i=N,表示此时已得到集合{Ic1,Ic2,…IcNc}、{k1,k2,..kNc}、{strdc1,strdc2,..strdcNc}、{Iy1,Iy2,…IyNc}、{padc1,padc2,…padcNc}等后续测试需要的集合,转到第二步,否则转到第1.2步;第二步,确定加速器MAC阵列的列数和行数,方法是:2.1 确定加速器MAC阵列的列数mc,mc为正整数;...

【技术特征摘要】
1.一种多带宽目标的加速器效能测试方法,其特征在于包括以下步骤:第一步,从卷积神经网络模型中挑选一个卷积神经网络作为智能加速器效能测试用例CNN,对测试用例CNN进行预处理,确定测试用例CNN每层的属性参数,具体方法如下:令测试用例CNN的层数为N,它包括Nc个卷积层、Np个池化层、Nfc个全连接层,N、Nc、Np、Nfc为正整数,并且满足N=Nc+Np+Nfc;1.1定义卷积神经网络层序数变量i=1,定义卷积层计数循环变量i1=1,定义池化层计数循环变量i2=1,定义全连接层计数循环变量i3=1;1.2若卷积神经网络的第i层为卷积层,转至第1.3步;若第i层为池化层,转至第1.5步;若第i层为全连接层,转至第1.7步;1.3根据CNN的描述提取第i1个卷积层的如下属性:1.3.1记录第i层的输入特征图高Ixi1;1.3.2记录第i层的输入特征图宽Iyi1;1.3.3记录第i层的输入特征图通道数即卷积核通道数Ici1;1.3.4记录第i层卷积核大小ki1;1.3.5记录第i层卷积核个数即卷积输出通道数Oci1;1.3.6记录第i层输入特征图行列方向填充的个数padci1;1.3.7记录第i层卷积核的跳步数strdci1;1.3.8记录第i层输出特征图高Oxi1;1.3.9记录第i层输出特征图宽Oyi1;1.4.令i1=i1+1;转到第1.9步;1.5提取第i2个池化层的如下属性:1.5.1记录第i层的输入特征图高Ipxi2;1.5.2记录第i层的输入特征图宽Ipyi2;1.5.3记录第i层的输入特征图通道数Ipci2;1.5.4记录第i层池化规模的大小pi2;1.5.5记录第i层输入特征图行列方向填充数padpi2;1.5.6记录第i层池化操作的跳步数strdpi2;1.5.7记录第i层输出特征图高Opxi2;1.5.8记录第i层输出特征图宽Opyi2;1.6令i2=i2+1;转到第1.9步;1.7提取第i3全连接层的如下属性:1.7.1记录第i层全连接操作输入节点个数为Fini3;1.7.2记录第i层全连接操作输出节点个数为Fouti3;1.8令i3=i3+1;转到第1.9步;1.9令i=i+1,若i=N,表示此时已得到集合{Ic1,Ic2,…IcNc}、{k1,k2,..kNc}、{strdc1,strdc2,..strdcNc}、{Iy1,Iy2,…IyNc}、{padc1,padc2,…padcNc}等后续测试需要的集合,转到第二步,否则转到第1.2步;第二步,确定加速器MAC阵列的列数和行数,方法是:2.1确定加速器MAC阵列的列数mc,mc为正整数;K∈{k1,k2,..kNc},strdx∈{strdc1,strdc2,..strdcNc},BW为加速器带宽,F为加速器MAC阵列工作频率;2.2确定加速器MAC阵列的行数mr,mr为正整数,方法是:MACmax为加速器可供利用的MAC单元的个数;第三步,测试加速器对测试用例CNN每个卷积层的效能,方法是:3.1令卷积层计数循环变量i1=1;3.2确定加速器运算第i1卷积层时的输出并行度Mi1,方法是:Mi1=min(Oci1,mr);3.3测试加速器从内存中传输strdci1×Iyi1×Ici1个输入像素至输入特征图缓冲,完成Mi1×Oyi1次卷积操作,并将Mi1×Oyi1个卷积运算结果像素由输出特征图缓冲传输回内存的时间tconvi1,方法为:3.4测试加速器运算第i1卷积层的时间Tconvi1,方法为:3.5测试加速器运算第i1卷积层的吞吐率thconvi1,方法为:其中,吞吐率为加速器每秒完成的乘累加操作的个数,单位为个数/s;3.6测试加速器运算第i1卷积层的MAC利用率Ui1,方法为:3.7令i1=i1+1,若i1=Nc,说明已得到集合{Tconv1、Tconv2、…TconvNc}、{thconv1、thconv2、…thconvNc、}和{U1、U2、…UNc},跳至第四步,否则跳至第3.2步;第四步,测试加速器对测试用例CNN的Nc个卷积层的总效能,方法是:4.1确定加速器计算CNN的Nc个卷积层的吞吐率Th...

【专利技术属性】
技术研发人员:姜晶菲付强窦勇刘志强韩哲赵小强秦步月
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1