自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

FPGA+CPU架構(gòu)的自動駕駛平臺性能分析

人工智能 無人駕駛
在這里本文試圖探討如何對FPGA+CPU自動駕駛平臺的性能進(jìn)行估計(jì),目的是希望幫助開發(fā)者在選擇FPGA+CPU自動駕駛系統(tǒng)平臺時(shí)初步掌握一種對系統(tǒng)性能的評估方法。

1 介紹

由于在自動駕駛領(lǐng)域需要對傳感器的數(shù)據(jù)作大量的基于深度內(nèi)神經(jīng)網(wǎng)絡(luò)的復(fù)雜運(yùn)算,GPU和FPGA被不約而同地用來作為對CPU的一種加速器被使用。這樣做不僅可以提高計(jì)算性能,并且可以大幅度地降低能耗。FPGA+CPU架構(gòu)的自動駕駛平臺憑借其靈活性,高效率,低能耗等特點(diǎn),正越來越多地被一大批擁有技術(shù)實(shí)力的公司使用,比如Waymo,百度,福特,通用等。在這里本文試圖探討如何對FPGA+CPU自動駕駛平臺的性能進(jìn)行估計(jì),目的是希望幫助開發(fā)者在選擇FPGA+CPU自動駕駛系統(tǒng)平臺時(shí)初步掌握一種對系統(tǒng)性能的評估方法。本文將以Xilinx 推出的Zynq UltraScale+ MPSoC ( Part#=ZU19EG )為例,來闡述其方法。

由于作者知識水平和寫作方法的局限,如讀者能指出錯(cuò)誤紕漏之處,將萬分感謝。

2 基于FPGA+CPU的自動駕駛平臺系統(tǒng)設(shè)計(jì)

圖一 是比較典型的基于FPGA+CPU的自動駕駛系統(tǒng)原理圖。一般來說配置一個(gè)多核的應(yīng)用處理器單元-Application Processor Unit(簡稱AP)用來跑一個(gè)或者多個(gè)操作系統(tǒng),主要用來任務(wù)調(diào)度,管理等工作,而大數(shù)據(jù)的處理:比如圖像的特征值提取,目標(biāo)類別識別,多目標(biāo)跟蹤,運(yùn)動預(yù)測等復(fù)雜運(yùn)算多放在FPGA 的可編程邏輯模組Programmable Logic(簡稱PL)來處理。衡量自動駕駛平臺的性能,關(guān)鍵點(diǎn)在幾方面:1、系統(tǒng)對大數(shù)據(jù)的處理能力,在這里就是要了解FPGA的PL模組的運(yùn)算能力。2、復(fù)雜多任務(wù)的處理能力,即應(yīng)用處理器CPU的運(yùn)算能力。3、高速海量數(shù)據(jù)的傳遞,即傳感器的數(shù)據(jù)接收,以及PL和AP之間的數(shù)據(jù)通訊能力。

由于篇幅原因,本文將只對第1點(diǎn)進(jìn)行詳細(xì)敘述,而第2,3點(diǎn)只做簡單敘述。

圖一:基于FPGA+CPU的自動駕駛平臺原理圖

3 如何計(jì)算FPGA PL的性能

3.1 FPGA 性能難以計(jì)算

在介紹如何計(jì)算FPGA的性能之前,我們來了解一下目前主流的FPGA的硬件。以Xilinx的Zynq UltraScale+ MPSoC為例,其PL包含可編程資源 Logic blocks, RAM, DSP slices等。而要得到最終的FPGA 性能值,由于以下幾點(diǎn)原因而變得困難。

  • 不太容易知道需要多少個(gè)logic cell和DSP slice才能構(gòu)造成一個(gè)加法器。這個(gè)數(shù)量是FPGA IP core供應(yīng)商決定的,用戶難以知曉
  • 通常FPGA用來實(shí)現(xiàn)和Application processor通訊的I/O設(shè)備需要占用一定數(shù)量的Logic cell,導(dǎo)致FPGA 資源不可能全部被利用到構(gòu)造加法器
  • 浮點(diǎn)運(yùn)算會導(dǎo)致設(shè)計(jì)的clock無法達(dá)到100%的設(shè)計(jì)指標(biāo),相對于設(shè)計(jì)的clock頻率指標(biāo),只能達(dá)到在80%左右
  • 溫度影響也要求系統(tǒng)的clock必須作出調(diào)整而不能以一個(gè)固定的值來計(jì)算

3.2 一種PFGA性能計(jì)算方法

目前通常使用的方法是參考系統(tǒng)的每秒浮點(diǎn)運(yùn)算操作(floating-point operations per second ),簡稱FLOPS。因?yàn)楦↑c(diǎn)運(yùn)算用到的所有的高階函數(shù),比如除法,平方,三角函數(shù)等,都能歸結(jié)為加法,乘法運(yùn)算,且常用的傅里葉變換,矩陣操作也都可以用加法器(adder)和乘法器(multipliers)的組合來實(shí)現(xiàn),所以FLOPS和加法器/乘法器的數(shù)量在衡量其運(yùn)算性能上是直接關(guān)聯(lián)的。

為了計(jì)算FPGA的最大運(yùn)算能力,我們可以通過利用單精度(Single-Precision)數(shù)據(jù)加法器數(shù)量的方法來求出一個(gè)系統(tǒng)的FLOPS。較乘法器而言,加法器利用到的系統(tǒng)資源少,求出的系統(tǒng)FLOPS的值就會接近最大值。

假設(shè)所有的運(yùn)算都是并行的,那么可以得到下面的FLOPS計(jì)算公式:FPGA PL FLOPS = ( Clock1 x LC based Adder#) + ( Clock2 x DSP48 based Adder#)根據(jù)以上公式,下面我們以Xilinx的Zynq UltraScale+ MPSoC的ZU19EG為例,來求其FLOPS。

3.3 FPGA的總資源

由圖二,Zynq UltraScale+ (Part=ZU19EG) 擁有的資源列表,我們可以看到它有1,143,450個(gè)Logic cell, 1,968個(gè)DSP slices。

圖二:Xilinx Zynq UltraScale+資源列表

3.4 PL加法器數(shù)量的計(jì)算

IP Core的實(shí)現(xiàn)方式由算法供應(yīng)商決定,在這里僅以Xilinx提供的基于Kintex-7上的加法器IP Core用到的資源作為參考,誤差應(yīng)該在可接受范圍。如圖三,可以得知:

  • 1個(gè)基于DSP48E 的加法器需要2個(gè)DSP slices和289LUT-FF pairs組成
  • 1個(gè)基于Logic cell 的加法器需要517 Logic Cells組成

圖三 支持單精度的FPGA特征由于實(shí)現(xiàn)相關(guān)的I/O設(shè)備,必須占用掉一定數(shù)量的Logic Cell,這里我們假設(shè)用掉14000個(gè)Logic Cell. 也即:Logic Cell 剩下總數(shù) = 1143450 - 14000 = 1129450由于要計(jì)算出最大值,我們需要假設(shè)盡可能多的使用所有資源,這樣可以得出:

  • DSP48 based adder amount = 1968 / 2 = 984 (個(gè))
  • LC based Adder amount = (1129450 - 984*289) / 517 = 1634(個(gè))

3.5 加法器的Clock

我們可以得知:

  • 基于DSP48 的加法器的clock范圍在:600 Mhz(slow) - 891Mhz (fastest)
  • 基于Logic cell的加法器的clock范圍在:667 Mhz(slow) - 891Mhz (fastest)

圖四 DSP slice 頻率參數(shù)特征

圖五 Global 時(shí)鐘參數(shù)特征根據(jù)不同的溫度條件,F(xiàn)max的值需要相應(yīng)調(diào)整。比如:

  • 當(dāng)溫度條件在0-100度時(shí),給加法器設(shè)置的clock可以設(shè)置較高為891Mhz
  • 當(dāng)溫度條件在-40-100度時(shí),給加法器設(shè)置的clock需要調(diào)整為600Mhz/667Mhz

為了計(jì)算最大運(yùn)算能力,我們采用在0-100度的條件下的clock值,也就是891MHz。

圖六 各個(gè)模組算力一覽這樣我們可以得出Zynq UltraScale+ MPSoC的ZU19EG的PL的運(yùn)算能力為:2332 GFLPOS (~2 TFLOPS)總結(jié): ~2T FLOPS某種程度上反映了FPGA Zynq UltraScale+ ZU19EG PL的處理能力。如果針對汽車級別產(chǎn)品而言,-40度至100度溫度的限制,整體PL的 FLOPS值應(yīng)該在1 FLPOS - 1.5T FLPOS之間比較恰當(dāng)。

4 如何計(jì)算FPGA AP的性能

如圖七,Xilinx的MPSoc+FPGA系列產(chǎn)品則完全可以叫SoC了,其不僅包含多個(gè)ARM CPU內(nèi)核,還有針對安全領(lǐng)域的R5內(nèi)核,還有Mali 400這樣的GPU。從下面的圖,可以得知FPGA Zynq UltraScale+ ZU19EG擁有

  • CPU#1:Quad-coreARM? Cortex?-A53 MPCore? up to 1.5GHz
  • CPU#2:Dual-coreARM Cortex-R5 MPCore? up to 600MHz
  • GPU:Mali?-400 MP2 up to 667MHz

圖七 Xilinx FPGA Zynq UltraScale+ ZU19EG框圖估算下來:

  • CPU#1 & CPU2 總運(yùn)算能力:2.24 x 1.5 x 1000 x 4 + 2.0 x 600 x2 ~= 15840 DMIPS
  • GPU運(yùn)算能力:2 GFLPOS

Note: Cortex-R5 : 1.67 / 2.02 / 2.45 DMIPS/MHzCorte-A53: 2.24 DMIPS/MHz

5 FPGA 架構(gòu)的靈活性

目前通用的認(rèn)知是Level3的自動駕駛需要系統(tǒng)擁有~350,000DMIPS的運(yùn)算能力,才可能實(shí)現(xiàn)比如雷達(dá)/視頻的處理,主動避讓,自動泊車等。以上章節(jié)所說的MPSoc+FPGA已經(jīng)有足夠的計(jì)算能力足以支持Level3左右的自動駕駛在一般場景下的運(yùn)用。

然而為了支持更多的自動駕駛Level4/Level5的場景,由于FPGA的接口靈活性,很容易在和FPGA的基礎(chǔ)上額外增加子計(jì)算模塊,整個(gè)系統(tǒng)運(yùn)算能力將突飛猛進(jìn),這樣極大地方便了平衡運(yùn)算力到不同的運(yùn)算單元。比如:可以把激光雷達(dá)的數(shù)據(jù)處理單獨(dú)放到某一個(gè)Intel Xeon 子計(jì)算模塊執(zhí)行,F(xiàn)PGA母板只需要控制邏輯,把激光雷達(dá)數(shù)據(jù)通過高速接口(PCIe或者10G以太網(wǎng))傳遞給子計(jì)算模塊讓其進(jìn)行大量的數(shù)據(jù)處理。

FPGA的靈活性可以讓開發(fā)者拓展出越來越多的可能。

責(zé)任編輯:張燕妮 來源: 智能汽車設(shè)計(jì)
相關(guān)推薦

2024-05-29 09:14:11

2022-02-09 11:36:34

智能駕駛芯片

2021-11-12 16:28:13

自動駕駛音頻技術(shù)

2022-10-27 10:18:25

自動駕駛

2019-09-19 14:10:12

人工智能物聯(lián)網(wǎng)自動駕駛

2021-11-18 09:50:35

自動駕駛輔助駕駛人工智能

2023-06-20 13:50:23

自動駕駛

2022-07-12 09:42:10

自動駕駛技術(shù)

2022-08-22 09:45:34

自動駕駛

2016-09-02 13:19:03

NVIDIA

2018-10-24 14:16:33

自動駕駛道路測試牌照

2020-01-09 08:42:23

自動駕駛AI人工智能

2021-05-18 15:37:39

自動駕駛麥肯錫汽車

2021-12-10 10:41:08

自動駕駛數(shù)據(jù)汽車

2021-11-15 23:53:54

自動駕駛機(jī)器物聯(lián)網(wǎng)

2020-09-28 14:00:06

自動駕駛AI網(wǎng)絡(luò)

2021-12-01 10:21:27

自動駕駛技術(shù)人工智能

2021-12-16 10:45:22

自動駕駛數(shù)據(jù)人工智能

2021-01-25 18:19:02

自動駕駛數(shù)據(jù)人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號