FPGA+CPUアーキテクチャに基づく自動運転プラットフォームの性能分析

FPGA+CPUアーキテクチャに基づく自動運転プラットフォームの性能分析

1 はじめに

自動運転の分野では、センサーデータに対するディープニューラルネットワークに基づく大量の複雑な計算が必要となるため、CPUのアクセラレータとしてGPUやFPGAが使用されています。そうすることで、コンピューティングのパフォーマンスが向上するだけでなく、エネルギー消費も大幅に削減されます。 FPGA + CPU アーキテクチャの自動運転プラットフォームは、その柔軟性、高効率、低消費電力により、Waymo、Baidu、Ford、General Motors など、技術力のある多数の企業で採用が進んでいます。ここでは、FPGA + CPU 自動運転プラットフォームのパフォーマンスを見積もる方法について説明します。目的は、開発者が FPGA + CPU 自動運転システム プラットフォームを選択する際に、最初にシステム パフォーマンスを評価する方法を習得できるようにすることです。この記事では、Xilinx が発売した Zynq UltraScale+ MPSoC (部品番号 = ZU19EG) を例として使用して、この方法を説明します。

著者の知識レベルと執筆方法の限界により、誤りや漏れなどがあれば読者の皆様からご指摘いただければ幸いです。

2. FPGA+CPUをベースとした自動運転プラットフォームシステムの設計

図1はFPGA+CPUをベースにした自動運転システムの典型的な概略図です。一般的に、マルチコア アプリケーション プロセッサ ユニット (AP) は、主にタスクのスケジュール設定、管理、およびその他のタスクのために、1 つ以上のオペレーティング システムを実行するように構成されています。ビッグ データの処理、たとえば、画像の特徴値の抽出、ターゲット カテゴリの認識、マルチターゲットの追跡、モーション予測、およびその他の複雑な操作は、主に FPGA のプログラマブル ロジック モジュールであるプログラマブル ロジック (PL) に配置されて処理されます。自動運転プラットフォームのパフォーマンスを測定するには、いくつかの重要な側面があります: 1. ビッグデータを処理するシステムの能力。ここでは、FPGA の PL モジュールの計算能力を理解する必要があります。 2. 複雑なマルチタスク処理能力、つまりアプリケーションプロセッサ CPU の計算能力。 3. 高速かつ大容量のデータ伝送、すなわち、センサーデータの受信およびPLとAP間のデータ通信機能。

スペースの制約により、この記事ではポイント 1 についてのみ詳しく説明し、ポイント 2 と 3 については簡単に説明します。

図1: FPGA+CPUをベースとした自動運転プラットフォームの概略図

3 FPGA PLの性能を計算する方法

3.1 FPGAの性能は計算が難しい

FPGA の性能を計算する方法を紹介する前に、現在主流の FPGA のハードウェアについて理解しておきましょう。 Xilinx の Zynq UltraScale+ MPSoC を例にとると、その PL にはロジック ブロック、RAM、DSP スライスなどのプログラム可能なリソースが含まれています。しかし、最終的な FPGA パフォーマンス値を取得することは、以下の理由により困難です。

  • 加算器を構築するために必要なロジック セルと DSP スライスの数を知ることは簡単ではありません。この数は FPGA IP コアのサプライヤによって決定され、ユーザーが知ることは困難です。
  • 通常、FPGA がアプリケーション プロセッサと通信するために使用する I/O デバイスは、一定数のロジック セルを占有する必要があるため、すべての FPGA リソースを使用して加算器を構築することは不可能です。
  • 浮動小数点演算により、設計されたクロックは設計指標の 100% に到達できません。設計されたクロック周波数指標と比較すると、約 80% にしか到達できません。
  • 温度の影響もシステム クロックを調整する必要があり、固定値を使用して計算することはできません。

3.2 PFGA性能計算方法

現在一般的に使用されている方法は、システムの 1 秒あたりの浮動小数点演算回数 (FLOPS) を参照することです。除算、平方、三角関数など、浮動小数点演算で使用されるすべての高次関数は、加算と乗算の演算に簡略化でき、一般的に使用されるフーリエ変換と行列演算も加算器と乗算器の組み合わせを使用して実装できるため、FLOPS と加算器/乗算器の数は、計算パフォーマンスを測定する際に直接関係します。

FPGA の最大計算能力を計算するには、単精度データ加算器の数を使用してシステムの FLOPS を見つけることができます。乗算器と比較すると、加算器は使用するシステム リソースが少なくなり、計算されたシステム FLOPS 値は最大値に近くなります。

すべての演算が並列であると仮定すると、次の FLOPS 計算式が得られます: FPGA PL FLOPS = ( Clock1 x LC ベースの加算器番号) + ( Clock2 x DSP48 ベースの加算器番号)上記の式に基づいて、Xilinx の Zynq UltraScale+ MPSoC の ZU19EG を例に、その FLOPS を計算します。

3.3 FPGAリソース合計

図 2 の Zynq UltraScale+ (部品番号 ZU19EG) のリソース リストを見ると、1,143,450 個のロジック セルと 1,968 個の DSP スライスがあることがわかります。

図 2: Xilinx Zynq UltraScale+ リソース リスト

3.4 PL加算器の数の計算

IP コアの実装方法はアルゴリズム供給元によって決定されます。ここでは、ザイリンクスが提供する Kintex-7 ベースの加算器 IP コアで使用されるリソースのみを基準として使用します。誤差は許容範囲内である必要があります。図 3 に示すように、次のことがわかります。

  • DSP48E ベースの加算器には、2 つの DSP スライスと 289 個の LUT-FF ペアが必要です。
  • ロジック セル ベースの加算器には 517 個のロジック セルが必要です。

図 3 単精度をサポートする FPGA 機能。関連する I/O デバイスの実装により、一定数のロジック セルを占有する必要があります。ここでは、14,000 個のロジック セルが使用されていると想定します。つまり、残りのロジック セルの総数 = 1,143,450 - 14,000 = 1,129,450 です。最大値を計算するには、すべてのリソースが最大限に使用されていると想定する必要があります。

  • DSP48 ベースの加算器の数 = 1968 / 2 = 984 (個)
  • LCベースの加算額 = (1129450 - 984*289) / 517 = 1634 (個)

3.5 加算クロック

次のことを学ぶことができます。

  • DSP48ベースの加算器のクロック範囲は、600Mhz(低速)~891Mhz(最高速)です。
  • ロジックセルベースの加算器のクロック範囲は、667 MHz (低速) - 891 MHz (最高速) です。

図4 DSPスライス周波数パラメータ特性

図 5 グローバル クロック パラメータの特性さまざまな温度条件に応じて、Fmax の値を調整する必要があります。例えば:

  • 温度が0度から100度の間であれば、加算器のクロック設定は891Mhzまで設定できます。
  • 温度が-40度から100度の間であれば、加算器のクロック設定を600Mhz/667Mhzに調整する必要があります。

最大計算能力を計算するには、0〜100 度のクロック値、つまり 891MHz を使用します。

図 6 各モジュールの計算能力の概要。このことから、Zynq UltraScale+ MPSoC ZU19EG PL の計算能力は次の通りであると結論付けることができます: 2332 GFLPOS (~2 TFLOPS)概要: ~2T FLOPS は、FPGA Zynq UltraScale+ ZU19EG PL の処理能力をある程度反映しています。温度制限が -40 ~ 100 度の車載グレード製品の場合、全体的な PL FLOPS 値は 1 FLPOS ~ 1.5T FLPOS の範囲がより適切になります。

4 FPGA APの性能を計算する方法

図7に示すように、XilinxのMPSoc+FPGAシリーズ製品はSoCとも言えます。複数のARM CPUコアだけでなく、セキュリティ分野向けのR5コアやMali 400などのGPUも搭載されています。下の図から、FPGA Zynq UltraScale+ ZU19EGには

  • CPU#1: クアッドコアARM® Cortex™-A53 MPCore™ 最大1.5GHz
  • CPU#2:デュアルコアARM Cortex-R5 MPCore™ 最大600MHz
  • GPU: Mali™-400 MP2 最大 667MHz

図 7 Xilinx FPGA Zynq UltraScale+ ZU19EG ブロック図推定:

  • CPU#1 と CPU2 の合計計算能力: 2.24 x 1.5 x 1000 x 4 + 2.0 x 600 x2 ~= 15840 DMIPS
  • GPU コンピューティング能力: 2 GFLPOS

注: Cortex-R5: 1.67 / 2.02 / 2.45 DMIPS/MHz Corte-A53: 2.24 DMIPS/MHz

5 FPGAアーキテクチャの柔軟性

現在、レベル 3 の自動運転では、レーダー/ビデオ処理、アクティブ回避、自動駐車などの機能を実現するために、システムに約 350,000DMIPS の計算能力が必要であると一般的に認識されています。上の章で述べた MPSoc + FPGA は、一般的なシナリオでレベル 3 の自動運転の使用をサポートするのに十分な計算能力をすでに備えています。

ただし、より多くのレベル 4/レベル 5 の自動運転シナリオをサポートするために、FPGA のインターフェイスの柔軟性により、FPGA に基づくサブコンピューティング モジュールを簡単に追加できます。システム全体のコンピューティング能力が飛躍的に向上し、さまざまなコンピューティング ユニットへのコンピューティング能力のバランスをとることが容易になります。たとえば、LiDAR のデータ処理は、Intel Xeon サブコンピューティング モジュールで個別に実行できます。FPGA マザーボードは、ロジックを制御し、高速インターフェイス (PCIe または 10G イーサネット) を介して LiDAR データをサブコンピューティング モジュールに渡すだけで、大量のデータ処理を実行できます。

FPGA の柔軟性により、開発者は可能性をさらに広げることができます。

<<:  CMU のポスドクらが NLP データ処理ツールを発表

>>:  Metaverse と Web3 は似ていますが、最も重要な違いは何でしょうか?

ブログ    
ブログ    

推薦する

製薬業界はAI医薬品製造の時代に突入。医薬機械企業にどのような影響を与えるのでしょうか?

現在、莫大な研究開発費と長い研究開発サイクルが、製薬会社の研究開発とイノベーションにおける「障害」に...

YouTubeがAIツールシリーズを発表:動画作成の提案、背景の生成、多言語吹き替えが可能

YouTubeは本日、クリエイターカンファレンス「Made on YouTube」において、AIを活...

一貫性ハッシュアルゴリズムと分散ストレージへの応用

OStorageの責任者であるLi Mingyu氏は、同社のエンタープライズレベルのオブジェクトスト...

予測によると、人工知能市場は急速に成長し続けるだろう

スペイン紙エル・ムンドのウェブサイトが2月20日に報じたところによると、ソフトウェア、ハードウェア、...

百度CTO王海鋒氏:オープンソースは技術革新と産業発展の原動力である

12月20日、国家深層学習技術応用工程研究室と百度が共催するWAVE SUMMIT+2020深層学習...

...

...

AIビデオ監視の普及における3つの大きな課題

近年、セキュリティビデオ監視はソフトウェアとハ​​ードウェアの両方で大きな技術的進歩を遂げており、さ...

分散コンセンサスアルゴリズムの実装 - Raft アルゴリズム

[[385285]]著者は、Raftアルゴリズムフレームワークraft-coreの独自のJavaバー...

...

すべての最大共通部分列を見つけるためのアルゴリズムの実装

1. LCS分析まず、サブシーケンスとは何でしょうか?定義は書きませんが、一目でわかるように例を挙げ...

...

...

ハーバード大学の研究者がAIを活用して世界中の密猟を阻止

ハーバード大学ジョン・A・ポールソン工学応用科学大学院のリリー・シューさんは、幼いころから環境と保護...

AIストレージアーキテクチャの構築方法

今日、データの処理と保存に関する懸念が高まっています。生成されるデータの量、データが作成される場所、...