当前位置: 首页 > 专利查询>山东大学专利>正文

一种面向FPGA神经网络加速器的实时性分析方法技术

技术编号:37615429 阅读:13 留言:0更新日期:2023-05-18 12:07
本发明专利技术涉及一种面向FPGA神经网络加速器的实时性分析方法,属于实时系统技术领域,包括以下步骤:对FPGA片上系统进行预分析,获取DPU部署信息;根据不同硬件部件的原理,提取出会对FPGA片上系统的CNN推理产生影响的硬件因素,并通过实验验证,建立系统硬件模型和DPU执行模型;根据模型建立通用化公式,构建FPGA片上系统的通用共享总线仲裁和内存访问争用模型。通过实验测量出通用共享总线仲裁和内存访问争用模型中的参数最坏情况的取值;将参数值代入模型公式中,根据FPGA片上系统硬件模型,静态分析出每个CNN推理的最坏执行时间界限。本申请考虑了多DPU部署环境下的FPGA片上系统,是对于多核异构系统的静态实时性分析的进一步尝试。一步尝试。一步尝试。

【技术实现步骤摘要】
一种面向FPGA神经网络加速器的实时性分析方法


[0001]本专利技术涉及一种面向FPGA神经网络加速器的实时性分析方法,属于实时系统


技术介绍

[0002]本部分的陈述仅仅是提供了与本公开相关的
技术介绍
,并不必然构成现有技术。
[0003]随着人工智能的不断发展,卷积神经网络(CNN)被广泛地应用于实时嵌入式系统中。例如,在开源自动驾驶系统Apollo中,使用了多种CNN网络模型来实现图像分类和障碍检测等任务。实时嵌入式系统对性能有着较高的要求,为了提高资源受限的嵌入式设备上的神经网络推理的性能,工业上往往使用异构嵌入式计算平台来代替传统的嵌入式平台。典型的用于CNN推理的异构处理器包括通用图形处理单元(GPU)、现场可编程门阵列(FPGA)和神经网络处理单元(NPU)。
[0004]在不同类型的异构处理器中,FPGA具有最好的可重构性和能效比,因此有着大量的基于FPGA的CNN加速器的研究。通过定制化的硬件设计和软硬件协同技术,基于FPGA的CNN加速器的性能和能效在过去十年有了显著的提升。在2019年,Xilinx公司发布了Vitis AI框架和深度学习处理单元(DPU)。Xilinx DPU是一种专门用于卷积神经网络推理的可编程加速器,它构建在专门的指令集上,便于在各种Xilinx FPGA设备上快速高效地部署和加速CNN。由于Xilinx FPGA在工业界的领先地位,基于Vitis AI框架部署Xilinx DPU现在已成为使用FPGA加速神经网络的较常用的开发流程。
[0005]像Xilinx DPU一样的大多数基于FPGA的CNN推理加速的研究都专注于提升加速器的性能和能效,而忽略了设计的实时性。在实时嵌入式系统中,最坏情况执行时间(WCET)分析对于系统设计的安全性和资源利用至关重要。
[0006]但是,本公开专利技术人发现,目前的唯一基于Xilinx DPU的CNN推理静态实时性分析框架,仅针对单个DPU部署的实时系统进行分析。除此之外,该框架分析估计的WCET界限是实际平均测量值的2.16倍,这可能导致实时系统设计中大量资源过度调配。

技术实现思路

[0007]针对现有技术的不足,本专利技术提供一种对于部署多个DPU的FPGA系统进行实时性分析的方法,建立基于共享总线仲裁和内存访问争用的模型,提出第一个多DPU环境下CNN推理的静态实时性分析框架。该框架可以大幅度降低此前论文分析的单DPU的最坏执行时间(WCET)界限,并帮助系统设计者在设计前对设计空间进行预估,从而在设计中更好地利用系统资源。
[0008]本专利技术的技术方案如下:
[0009]一种面向FPGA神经网络加速器的实时性分析方法,包括步骤如下:
[0010]通过实验测量出通用共享总线仲裁和内存访问争用模型中的参数最坏情况的取值;
[0011]将参数值代入模型公式中,根据FPGA片上系统硬件模型,静态分析出每个CNN推理的最坏执行时间(WCET)界限。
[0012]优选的,构建FPGA片上系统的通用共享总线仲裁和内存访问争用模型的方法,包括以下步骤:
[0013]对FPGA片上系统进行预分析,获取DPU部署信息;
[0014]根据不同硬件部件的原理,提取出会对FPGA片上系统的CNN推理产生影响的硬件因素,并通过实验验证,建立系统的硬件模型和DPU的执行模型;
[0015]根据模型建立通用化公式,构建FPGA片上系统的通用共享总线仲裁和内存访问争用模型。
[0016]进一步优选的,对FPGA片上系统进行预分析为在部署DPU时使用Vivado软件,或者在部署后使用VitisAnalyzer软件进行分析。
[0017]进一步优选的,DPU部署信息指的是部署在该FPGA上的DPU的数量、型号,DPU的部署方式,以及PGA的PS系统的连接方式等信息。
[0018]进一步优选的,通过实验验证不同硬件部件对CNN推理的影响,具体为:
[0019]采用控制变量法,每次重新部署DPU,只改动一个硬件部件的信息,多次执行CNN推理,记录平均推理时间;
[0020]根据不同硬件配置下的CNN平均推理时间,观察不同硬件部件对CNN推理时间的影响。
[0021]进一步优选的,建立系统的硬件模型具体为:所有DPU的指令接口通过同一个AXI互连共享LPD PL

PS接口,同时从所有DPU的数据接口发送出的数据事务会在PS部分共享AXI互连,并最终和指令事务共同接受DDR端口仲裁器的事务仲裁。
[0022]进一步优选的,对于每个DPU,也需要为其建立DPU执行模型,具体为:模型包括输入、执行过程、输出,执行过程将DPU的一次CNN推理分为四个阶段:读指令阶段(INS)、读数据阶段(R)、写数据阶段(W)和建立阶段(ELAB);其中,读指令阶段指DPU通过指令接口,读取存储在DDR中的DPU指令的过程;读数据阶段指DPU通过其两个数据接口,读取存储在DDR中的DPU数据的过程;写数据阶段指DPU通过其两个数据接口,将计算后生成的数据写入DDR的过程;建立阶段指的是DPU只进行计算,无任何访存行为的时间。过去的研究表明,DPU的读数据阶段,与读指令阶段、写数据阶段是同时进行的。
[0023]进一步优选的,建立通用化公式具体为:
[0024]步骤一:根据DPU执行模型,可以得到通用的DPU推理时间总体计算公式:
[0025]T
total
=max{T
R
,T
INS
+T
W
}+T
ELAB
[0026]由于在DPU的建立阶段,不存在任何访存行为,所以T
ELAB
可以被看作一个恒定值计算,该值与CNN网络的计算量,以及DPU的算力有关(即CNN网络的计算量除以DPU的算力,再减去DPU的访存时间。一般来说该参数数值非常小,可忽略。)。所以,在之后的部分只需要对其他三个阶段进行分析,我们有如下计算方法:
[0027][0028]其中,T
trsf
指的是所有事务的传输时间之和,这里的传输时间不考虑和其他DPU之间的冲突;而T
wait
指的是因为和其他DPU之间的冲突而产生的事务等待时间;后面将对这两
种时间的计算方法进行详细介绍。
[0029]步骤二:根据AXI读写规范以及DPU原理得到传输时间的计算方法;
[0030]数据和指令的读写都通过AXI事务完成,一个AXI事务包括了多次AXI传输;一个完整的读事务包括一个读地址请求,以及多个数据的传回;一个完整的写事务包括一个写地址请求,多个数据的写入,以及一个写入返回;为了方便公示表示,我们记一个地址请求的传输时间为对于写事务,这里的传输时间包括写入返回;记一个数据的读写时间为记不同的PL

PS接口所需要的读写时间为这些时间作为参数都可以通过实验测出;
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向FPGA神经网络加速器的实时性分析方法,其特征在于,包括步骤如下:通过实验测量出通用共享总线仲裁和内存访问争用模型中的参数最坏情况的取值;将参数值代入模型公式中,根据FPGA片上系统硬件模型,静态分析出每个CNN推理的最坏执行时间界限。2.根据权利要求1所述的面向FPGA神经网络加速器的实时性分析方法,其特征在于,构建FPGA片上系统的通用共享总线仲裁和内存访问争用模型的方法,包括以下步骤:对FPGA片上系统进行预分析,获取DPU部署信息;根据不同硬件部件的原理,提取出会对FPGA片上系统的CNN推理产生影响的硬件因素,并通过实验验证,建立系统的硬件模型和DPU的执行模型;根据模型建立通用化公式,构建FPGA片上系统的通用共享总线仲裁和内存访问争用模型。3.根据权利要求2所述的面向FPGA神经网络加速器的实时性分析方法,其特征在于,对FPGA片上系统进行预分析为在部署DPU时使用Vivado软件,或者在部署后使用Vitis Analyzer软件进行分析。4.根据权利要求2所述的面向FPGA神经网络加速器的实时性分析方法,其特征在于,DPU部署信息指的是部署在该FPGA上的DPU的数量、型号,DPU的部署方式,以及PGA的PS系统的连接方式信息。5.根据权利要求2所述的面向FPGA神经网络加速器的实时性分析方法,其特征在于,通过实验验证不同硬件部件对CNN推理的影响,具体为:采用控制变量法,每次重新部署DPU,只改动一个硬件部件的信息,多次执行CNN推理,记录平均推理时间;根据不同硬件配置下的CNN平均推理时间,观察不同硬件部件对CNN推理时间的影响。6.根据权利要求2所述的面向FPGA神经网络加速器的实时性分析方法,其特征在于,建立系统的硬件模型具体为:所有DPU的指令接口通过同一个AXI互连共享LPD PL

PS接口,同时从所有DPU的数据接口发送出的数据事务会在PS部分共享AXI互连,并最终和指令事务共同接受DDR端口仲裁器的事务仲裁。7.根据权利要求6所述的面向FPGA神经网络加速器的实时性分析方法,其特征在于,对于每个DPU,也需要为其建立DPU执行模型,具体为:模型包括输入、执行过程、输出,执行过程将DPU的一次CNN推理分为四个阶段:读指令阶段(INS)、读数据阶段(R)、写数据阶段(W)和建立阶段(ELAB);其中,读指令阶段指DPU通过指令接口,读取存储在DDR中的DPU指令的过程;读数据阶段指DPU通过其两个数据接口,读取存储在DDR中的DPU数据的过程;写数据阶段指DPU通过其两个数据接口,将计算后生成的数据写入DDR的过程;建立阶段指的是DPU只进行计算,无任何访存行为的时间,DPU的读数据阶段,与读指令阶段、写数据阶段是同时进行的。8.根据权利要求7所述的面向FPGA神经网络加速器的实时性分析方法,其特征在于,建立通用化公式具体为:步骤一:根据DPU执行模型,得到通用的DPU推理时间总体计算公式:T
total
=max{T
R
,T
INS
+T
W
}+T
ELAB
T
ELAB
被看作一个恒定值计算,对其他三个阶段进行分析,有如下计算方法:
其中,T
trsf
指的是所有事务的传输时间之和;而T
wait
指的是因为和其他DPU之间的冲突而产生的事务等待时间;步骤二:根据AXI读写规范以及DPU原理得到传输时间的计算方法;数据和指令的读写都通过AXI事务完成,一个AXI事务包括了多次AXI传输;一个完整的读事务包括一个读地址请求,以及多个数据的传回;一个完整的写事务包括一个写地址请求,多个数据的写入,以及一个写入返回;记一个地址请求的传输时间为对于写事务,这里的传输时间包括写入返回;记一个数据的读写时间为记不同的PL
‑<...

【专利技术属性】
技术研发人员:鞠雷江潇张伟
申请(专利权)人:山东大学
类型:发明
国别省市:

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

1