ランダム アクセスおよび RAMA IP - 2020.2 Japanese

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

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese

HBM は、順次データ アクセスが必要なアプリケーションではうまく機能しますが、ランダム データ アクセスが必要なアプリケーションでは、アプリケーションの要件 (読み出しと書き込みの比、最小トランザクション サイズ、アドレス指定されるメモリ空間のサイズなど) によって大きく異なります。このような場合、ターゲット プラットフォームに Random Access Memory Attachment (RAMA) IP を追加することで、必要なメモリが 1 つの HBM PC の 256 MB の制限を超えた場合に、ランダム メモリ アクセスの効率を大幅に向上させることができます。詳細は、 『RAMA LogiCORE IP 製品ガイド』 (PG310) を参照してください。

ヒント: アプリケーションで RAMA IP を効果的に使用するには、カーネルは複数の HBM PC からメモリにアクセスし、AXI トランザクション ID ポート (AxID) でスタティックな単一の ID を使用するか、ゆっくりと変化する (擬似スタティック) AXI トランザクション ID を使用する必要があります。これらの条件が満たされない場合、RAMA IP により使用されるスレッド作成によるパフォーマンスの向上はそれほどなく、プログラマブル ロジック リソースが無駄に消費されることになります。

次の v++ コマンド オプションを使用して、システム リンク プロセス中にターゲット プラットフォームに RAMA IP を追加し、対象のポートを定義する Tcl スクリプトを指定します。

v++ -l --advanced.param compiler.userPreSysLinkOverlayTcl=<path_to>/user_tcl_file.tcl
このユーザー指定の Tcl スクリプト内には、HMSS リソースを設定する API があります。
hbm_memory_subsystem::ra_master_interface <Endpoint AXI master interface> [get_bd_cells hmss_0]

次の例では、ランダム アクセス用に 2 つの AXI マスター ポート (M00_AXI および M01_AXI) を使用しています。

hbm_memory_subsystem::ra_master_interface [get_bd_intf_pins dummy/M00_AXI] [get_bd_cells hmss_0]
hbm_memory_subsystem::ra_master_interface [get_bd_intf_pins dummy/M01_AXI] [get_bd_cells hmss_0]
validate_bd_design -force

HBM サブシステムによって情報が正しく収集され、ブロック デザインがアップデートされるようにするには、前述のように validate_bd_design コマンドを使用して Tcl スクリプトを終了することが重要です。