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、VR、ブロックチェーンにより、新しい時代は貧しい人々にとっての楽園となるのでしょうか?

今日の社会では貧困がまだ存在しています。 [[275832]]国連開発計画(UNDP)のデータによる...

ディープラーニングにおける正規化の概要(Python コード付き)

編集者注: 日々の仕事や研究において、データ サイエンティストが遭遇する最も一般的な問題の 1 つは...

Zhuiyi Technology AI Lab: ビジネスとテクノロジーの両方を推進し、新しいレベルのインテリジェントなインタラクティブアプリケーションを創造

[51CTO.comからのオリジナル記事] 人工知能の推進により、ビジネス運営モデルは変化しました。...

ゲームの背後にあるAIストーリー:小規模サンプル学習と転移学習

2019年、人間と機械のゲームバトルにおいて、Open AI Fiveが圧倒的なパフォーマンスでD...

過去1年間、世界は人工知能の倫理について次のような考えを抱いてきた。

1月下旬に終了したCES 2019で、LGの社長兼最高技術責任者であるIP Park氏が、AIがど...

...

PyTorch と TensorFlow の最新バージョンを比較すると、2021 年にはどちらを選択しますか?

ディープラーニングが再び認知されて以来、多くの機械学習フレームワークが登場し、研究者や業界の専門家の...

...

...

...

...

...

インダストリー4.0: AIを活用した障害検出

[[359728]] AI の向上とマシン ビジョン制御の向上を組み合わせることで、スマート製造業界...