OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2047|回复: 0

[XILINX] 【阿东手把手教你学FPGA】一种FPGA+CPU平台的性能估计方法

[复制链接]

8

主题

13

帖子

1

精华

超级版主

Rank: 8Rank: 8

积分
221
金钱
221
注册时间
2019-11-11
在线时间
27 小时
发表于 2023-3-16 22:00:38 | 显示全部楼层 |阅读模式
本帖最后由 dongguo100 于 2023-3-16 22:35 编辑

本文给大家介绍下如何对FPGA+CPU平台进行性能估计,目的是帮助大家在选择FPGA+CPU系统平台时,掌握一种系统性能评估方法。
1、介绍
自动驾驶领域,需要对传感器的数据作大量的基于深度内神经网络的复杂运算,GPU和FPGA被不约而同地用来作为对CPU的一种加速器被使用。这样做不仅可以提高计算性能,并且可以大幅度地降低能耗。FPGA+CPU架构的平台凭借其灵活,高效率,低能耗等特点,正越来越多地被一大批拥有技术实力的公司使用,比如Waymo,百度,福特,通用等。这时我们就需要对FPGA+CPU平台的性能进行估计,看下是否满足相关性能需求。本文将以Xilinx推出的Zynq UltraScale+ MPSoC为例,来阐述其性能评估方法。
MPSOC包括PL和PS两个部分,PL是指的是FPGA可编程部分,PS指的是CPU部分,MPSOC的性能是两部分之和,因此我们需要分别进行评估相关性能。
2、如何计算FPGA PL的性能
2.1 FPGA性能难以计算
在介绍如何计算FPGA的性能之前,我们来了解一下目前主流的FPGA的硬件。以Xilinx的Zynq UltraScale+ MPSoC为例,其PL包含可编程资源 Logic blocks, RAM, DSP slices等。而要得到最终的FPGA 性能值,由于以下几点原因而变得困难。
  • 不太容易知道需要多少个logic cell和DSP slice才能构造成一个加法器。这个数量是FPGA IP core供应商决定的,用户难以知晓
  • 通常FPGA用来实现和Application processor通讯的I/O设备需要占用一定数量的Logic cell,导致FPGA 资源不可能全部被利用到构造加法器
  • 浮点运算会导致设计的clock无法达到100%的设计指标,相对于设计的clock频率指标,只能达到在80%左右
  • 温度影响也要求系统的clock必须作出调整而不能以一个固定的值来计算
2.2 一种PFGA性能计算方法
目前通常使用的方法是参考系统的每秒浮点运算操作(floating-point operations per second ),简称FLOPS。因为浮点运算用到的所有的高阶函数,比如除法,平方,三角函数等,都能归结为加法,乘法运算,且常用的傅里叶变换,矩阵操作也都可以用加法器(adder)和乘法器(multipliers)的组合来实现,所以FLOPS和加法器/乘法器的数量在衡量其运算性能上是直接关联的。
为了计算FPGA的最大运算能力,我们可以通过利用单精度(Single-Precision)数据加法器数量的方法来求出一个系统的FLOPS。较乘法器而言,加法器利用到的系统资源少,求出的系统FLOPS的值就会接近最大值。
假设所有的运算都是并行的, FPGA中的LC逻辑和DSP48都可以构成加法器,这两部分是叠加的,因此我们可以得到下面的FLOPS计算公式:
FPGA PL FLOPS = ( Clock1 x LC basedAdder#) + ( Clock2 x DSP48 based Adder#)
根据以上公式,下面我们以Xilinx的Zynq UltraScale+ MPSoC的ZU19EG为例,来求其FLOPS。
2.3 FPGA的总资源
由图二,Zynq UltraScale+拥有的资源列表,我们可以看到ZU19EG有1,143,450个Logic cell, 1,968个DSP slices。
图片1.jpg
图二:Xilinx Zynq UltraScale+资源列表
2.4 PL加法器数量的计算
IP Core的实现方式由算法供应商决定,在这里仅以Xilinx提供的基于Kintex-7上的加法器IP Core用到的资源作为参考,误差应该在可接受范围。如图三,可以得知:
  • 1个基于DSP48E的加法器需要2个DSP slices和289 LUT-FF pairs组成
  • 1个基于Logic cell 的加法器需要517 Logic Cells组成
图片2.jpg
图三 Kintex-7上支持单精度的FPGA IP资源消耗
支持单精度的FPGA特征
由于实现FPGA相关的I/O输入输出,必须占用掉一定数量的Logic Cell,这里我们假设用掉14000个(预估的一个值)Logic Cell。也即:Logic Cell 剩下总数 = 1143450 - 14000 = 1129450,由于要计算出最大值,我们需要假设尽可能多的使用所有资源,这样可以得出:
  • DSP48 based adder amount = 1968 / 2 =984 (个)
  • LC based Adder amount = (1129450 -984*289) / 517 = 1634(个)

2.5 加法器的Clock
我们可以得知:
  • 基于DSP48 的加法器的clock范围在:600 Mhz(slow) - 891Mhz (fastest)
  • 基于Logic cell的加法器的clock范围在:667 Mhz(slow) - 891Mhz (fastest)
图片3.jpg
图四 DSP slice 频率参数
时钟频率根据不同的温度条件,Fmax(FPGA跑的最大时钟频率)的值需要相应调整。比如:
  • 当温度条件在0-100度时,给加法器设置的clock可以设置较高为891Mhz
  • 当温度条件在-40-100度时,给加法器设置的clock需要调整为600Mhz/667Mhz
为了计算最大运算能力,我们采用0-100度的条件下的clock频率,也就是891MHz。
11.jpg
图五 PL部分算力计算
这样我们可以得出Zynq UltraScale+ MPSoC的ZU19EG的PL的运算能力为:2331 GFLPOS (~2 TFLOPS)
总结: ~2T FLOPS某种程度上反映了FPGA Zynq UltraScale+ ZU19EG PL的处理能力。
类似方法,我们可以算出ZU2EG如下性能数据:
我们先根据图二算出基于DSP48和LC的加法器数量。
  • DSP48 based adder amount = 240 / 2 = 120(个)
  • LC based Adder amount = (103320 - 14000- 120*289) / 517 = 105(个)
22.jpg
这样我们可以得出Zynq UltraScale+ MPSoC的ZU2EG的PL的运算能力为:199 GFLPOS (~0.2 TFLOPS)
类似方法,我们再算下ZU4EG如下性能数据:
我们先先根据图二算出基于DSP48和LC的加法器数量。
  • DSP48 based adder amount = 728 / 2 = 364(个)
  • LC based Adder amount = (192150 - 14000- 364 *289) / 517 = 141(个)
33.jpg
这样我们可以得出Zynq UltraScale+ MPSoC的ZU2EG的PL的运算能力为:449 GFLPOS (~0.45 TFLOPS)
3、如何计算FPGA PS的性能
如图七,Xilinx的MPSoc+FPGA系列产品则完全可以叫SoC了,其不仅包含多个ARM CPU内核,还有针对安全领域的R5内核,还有Mali 400这样的GPU。从下面的图,可以得知FPGA Zynq UltraScale+拥有
  • CPU#1:Quad-coreARM® Cortex™-A53 MPCore™ up to1.5GHz
  • CPU#2:Dual-coreARM Cortex-R5 MPCore™ up to600MHz
  • GPU:Mali™-400 MP2 up to 667MHz
图片4.jpg
图六 Xilinx FPGA Zynq UltraScale+框图
注意:
Cortex-R5 : 1.67 / 2.02 / 2.45 DMIPS/MHz
Corte-A53: 2.24 DMIPS/MHz
因此我们估算下来:
  • CPU#1 & CPU2 总运算能力:2.24 x 1.5 x 1000 x 4 + 2.0 x 600 x2 ~=15840 DMIPS
  • GPU运算能力:2 GFLPOS

注:本文是阿东基于《FPGA+CPU架构的自动驾驶平台性能分析》做了一些补充和修改,如有侵权请联系我,谢谢!

正点原子FPGA开发板推荐:
入门XILINX学习可以选择达芬奇开发板:https://detail.tmall.com/item.htm?abbucket=2&id=624335496505
入门ZYNQ学习可以选择领航者开发板      :https://detail.tmall.com/item.htm?abbucket=2&id=609032204975
进阶MPSOC学习可以选择MSPOC开发板 :https://detail.tmall.com/item.htm?abbucket=2&id=692450874670
进阶XILINX可以选择达芬奇Pro开发板      :https://detail.tmall.com/item.htm?abbucket=2&id=640278473312
国产FPGA学习可以选择紫光开发板          :https://detail.tmall.com/item.htm?abbucket=2&id=692712955836





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-3 18:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表