動作の変更 - 2023.2 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

次の表に、移行の際に動作またはフローに影響するこのリリースと以前のリリースとの違いを示します。

表 1. 動作の変更のサマリ
エリア ビヘイビアー
Vitis IDE

vitis コマンドで起動すると、Vitis Unified IDE がデフォルトの GUI になりました。従来の Vitis IDE を起動するには、vitis --classic を実行します。

従来の Vitis IDE に関する情報を参照するには、2023.1 またはそれ以前のバージョンの資料を参照してください。

v++ --freqhz コマンドが導入され、ほかのほとんどのクロック管理コマンドに置き換わっています。「クロック周波数の管理」で説明するように、AI エンジン コンポーネント、HLS コンポーネント、およびシステム プロジェクトの v++ --link コマンドのクロックを指定するには、--freqhz を使用します。
Vitis HLS

xparameters.h には DEVICE_ID 定義が含まれなくなりました。代わりに BASEADDR 定義が使われるようになりました。AMD ドライバーおよびライブラリはこの変更に対応していますが、レガシ コードを使用している場合は、この変更に注意してください。X<DUT>_Initialize および X<DUT>_LookupConfig ドライバー関数を使用して、ソフトウェア アプリケーションがハードウェア モジュールをアドレス指定する方法を変更する必要があります。

Vitis HLS

ap_int/ap_uint/ap_fixed/ap_ufixed の初期化動作が変更され、C のビルトインの型 (intfloat...) との互換性が高くなりました。

ap_int<N> A[N]; // uninitialized, both 23.2 and previous releases
ap_int<N> B[N] = {0}; // With 23.2, the whole array is initialized \
to zero. With previous releases, only the first element is initialized to \
zero, other elements are uninitialized. 
ap_int<N> B[N] = { }; // With 23.2, the whole array is initialized \
to zero. With previous releases, it is uninitialized.
Vitis HLS

元の qdma_axis<w, 0, 0, 0> は clib から削除され、次に置き換わっています。

template <std::size_t WData, std::size_t WUser, std::size_t
                        WId, std::size_t WDest>
using qdma_axis = hls::axis<ap_uint<WData>, WUser, WId,
                        WDest, AXIS_ENABLE_ALL ^ AXIS_ENABLE_STRB, false>;
Vitis HLS

2023.2 リリースでは、スケジューラで使用されるタイミング モデルが変更され、HLS コンパイラのタイミング予測が Vivado Design Suite とより近い値で一致するようになりました。このため、遅延モデルの見積もり部分が不必要に悪くなる可能性があります。主な変更点は、AXI4-Stream インターフェイスの遅延、パイプライン制御のための複雑なイネーブル条件の使用などです。これらの変更の結果、このリリース以前にパスしていたデザインで、レイテンシと II の両方が変化するはずです。

デザインが以前 HLS や Vivado でタイミングを満たしていた場合は、プラグマやデ指示子でこのような制約を追加すること、元の II とレイテンシを復元できます。add_clock または set_clock コマンドを使用して、クロックのばらつきを削減することもできます。より優れた HLS タイミング モデルにより、ばらつきが削減できるようにはなっていますが、II 制約 (必要であればレイテンシ制約も) は、より決定論的なメカニズムで同じ目標を達成します。

Vitis HLS アサートがサポートされるようになりました。
Vitis エンベデッド ソフトウェア開発 SDT (システム デバイス ツリー) は、Vitis Unified フローの新しいコンセプトです。従来の Vitis フローでは、プラットフォーム作成のためのプロセッサの抽出や BSP 作成のための IP の抽出など、Vitis ツールが必要とする「アドホック」な方法で、HSI API を使用して XSA から HW メタデータを直接抽出していました。Vitis Unified フローでは、SDT はプラットフォームの生成時に生成されます。これは、Lopper フレームワークを介して Vitis にハードウェア メタデータを提供するために使用されています。
Lopper は Python ベースのフレームワークで、システム デバイス ツリーからシステム メタデータを抽出するために使用されます。Lopper Framework API が Vitis を介して公開されることはありません。その代わりに、プラットフォーム コンポーネントの作成などの Vitis Python API が、基礎となる Lopper Framework API を使用します。Lopper フレームワークは、xparameters.h とドライバー初期化ファイルの生成にも使用されます。

MLD/MDD MSS ファイルセットが削除され、YAML ファイル セットと CMake ファイルセットに置き換わっています。

xparameters.h はまだ Lopper Framework によって生成されますが、DEVICE_ID 定義は含まれません。その代わりに BASEADDR 定義が使用されるようになりました。AMD ドライバーおよびライブラリはこの変更に対応していますが、レガシ コードを使用している場合は、この変更に注意してください。