【技术实现步骤摘要】
一种面向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加速神经网络的较常用的开发流程。
[0 ...
【技术保护点】
【技术特征摘要】
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
‑<...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。