Vitis ソフトウェア プラットフォーム 2022.2 の最新情報 – 主な機能向上

2022 年 10 月 24 日


編集者注: このコンテンツは、AMD の Snehal Ullagaddi, Product Marketing Manager - Vivado ML による寄稿です。

 

Vitis 統合ソフトウェア プラットフォーム 2022.2 がリリースされました。次の機能が向上しています。

Versal AI エンジン アレイ向けの新しい Vitis ライブラリ機能

  • DSP ライブラリ機能 – 拡張機能
  • ソルバー ライブラリ機能
  • ビジョン ライブラリ機能
  • 超音波診断ライブラリ機能

Versal デバイスのデザイン フロー改善点

  • AI エンジン アレイにおけるカーネルの相対配置を制御 - 性能と使用率が向上
  • Versal® ACAP デザインのプロファイリングおよびデバッグ機能が強化 - デッドロック検出、大規模なトレース データ収集、RTL/Python テストベンチのサポート
  • Vitis 統合設計環境でヘテロジニアス デザイン向けの新しいシミュレーション オプション
vitis-software-for-hardware-development-logo-tile

主な機能を見てみましょう。

 

Vitis ソフトウェア プラットフォーム 2022.2 では、Vitis ライブラリが強化され、AI エンジン アレイ向けの多くの機能がサポートされている

  • 係数リロード機能やダイナミック ポイント サイズに対応し、AI エンジン アレイでのスーパー サンプル レート (SSR) FIR フィルターをサポート。 AI エンジン アレイ向けの FFT 関数に FFT のウィンドウイング要素が追加。
  • ソルバー ライブラリ機能に、AI エンジン アレイ向けの QR 分解とコレスキー分解という 2 つの行列分解関数が追加。これらは頻繁に要求される行列計算。
  • Vitis ビジョン ライブラリに AI エンジン アレイ向けの 4 つの機能が追加 - GTM (グローバル トーン マッピング)、CCM (色補行列)、3D LUT、および V4L2 を使用するダイナミック リコンフィギュレーション。
  • 2022.2 では、L1 ~ L3 レベルの機能を含む新しい超音波診断ライブラリ機能を利用可能。
    • L1 ルーチンは、超音波向けの BLAS のような関数を提供。
    • L2 ルーチンは、フォーカシング、アポダイゼーション、B スプラインなどの関数用に AI エンジン グラフを提供。
    • L3 ルーチンは、合成開口、平面波、スキャンライン ビームフォーミングなどの超音波サブシステムを提供

 

2022.1 から 2022.2 までの AI エンジン対応 Vitis ライブラリ機能の詳細は以下のとおりです。

Vitis_library_functions_2022_1_vs_2022_2

Versal ACAP デザイン フローの改善点

AI エンジン コンパイラ

今回のバージョンには AI エンジンの相対配置を制御する機能が追加され、AI エンジン アレイ内でカーネルの相対的な配置を制御できるようになりました。これにより、AI エンジン アレイの性能と使用率が向上します。これらの制約は、ADF (適応型データフロー) グラフ形式と JSON (JavaScript Object Notation) の両方で定義できます。

ADF および JSON 形式でのグラフ構文の例を以下に示します。

ADF_JSON_graph_syntax

Vitis ツールのシミュレーションおよび解析のための新機能

1.Vitis アナライザーを使用する AI エンジンのプロファイリング、デバッグ、解析

2022.2 では、HW エミュレーション中に AI エンジンの状態を解析可能にすることでデバッグ機能を強化しています。旧バージョンでは、同等の解析を行うためにはハードウェア デザインを構築する必要がありましたが、この機能を使用することで、早い段階でプロファイルを作成できるため、効率的な反復作業で開発サイクルを短縮できます。

デッドロック検出は、2022.1 から有効になっている機能であり、Linux 上で xbutil と XRT の使用がサポートされていましたが、今回のリリースでは、XSDB (ザイリンクス システム デバッガー) の使用がサポートされています。これはベアメタル ユーザーにとって便利な機能です。xbutil で生成されるファイルに相当する JSON ファイルを生成し、Vitis アナライザーにインポートして表示させることも可能です。

デッドロック検出のフローを次に示します。

flow_for_deadlock_detection

この新しい機能は、AI エンジンに基づいて XRT から XSDB フローまで幅広くサポートします。

2.x86 ホスト マシンの PS アプリケーションで SW エミュレーションをサポート

この SW エミュレーションによって、エンベデッド プラットフォーム向けの QEMU 環境に加え、x86 シミュレータ上でも PS (プロセッシング システム) アプリケーションをコンパイルして実行できるようになり、SW エミュレーションを高速化します。この機能は、SD カード イメージの作成や QEMU 上での Linux の起動などのオーバーヘッドを回避してターンアラウンド タイムを短縮できます。XRT を使用してアクセラレーション カーネルを制御することで、ユーザーは高レベルの機能モデルに集中できます。この機能を使用する場合は、あらかじめザイリンクス ランタイム ライブラリ (XRT) をホストにインストールしておく必要があります。

 

3.HW エミュレーションで、RTL の代わりに SystemC の機能モデルを使用可能

SystemC の機能モデルを使用した場合、RTL よりコンパイルが高速化し、実行時間を大幅に短縮できます。また、C と RTL カーネルを両方使用して、RTL ブロックをデバッグすることも可能です。このバージョンでは、C/C++ カーネルのほか、AXI4 メモリ マップや AXI4-Stream ベースのカーネルがサポートされています。

新しいシミュレーション オプションによって、以下のように対象となる機能シミュレーション フローが拡大されました。これらの新しいフローの主な目的は、機能シミュレーションを高速化することです。

1670184-vitis-simulation-flow

4.シンプルな RTL テストベンチまたは Python スクリプト ベースのトラフィック ジェネレーターを使用する AI エンジン カーネルのシミュレーションをサポート

RTL テストベンチをトラフィック ジェネレーター (TG) として再利用したり、Python を使用して TG を作成できます。完全なプラットフォームがなくてもスタンドアロンのカーネルを検証できます。

RTL シミュレータではテストベンチを使用し、x86SIM/AIESIM では C または AI エンジン カーネル コードをシミュレーションし、2 つのプロセス間の通信には Unix ソケットと XTLM IPC インターフェイスを使用します (下図参照)。

RTL_x86sim_simulator

Vitis ソフトウェア プラットフォーム 2022.2 では、Python、VHDL、Verilog、および SystemVerilog ベースのトラフィック ジェネレーターがサポートされるようになりました。

次のステップ

Vitis 統合ソフトウェア プラットフォーム 2022.2 をダウンロードして、最先端のツール環境と最新機能をご活用ください。