ソフトウェア コンポーネントのアップデート - 2021.2 Japanese

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

Document ID
UG1393
Release Date
2022-03-29
Version
2021.2 Japanese

XRT へのルート ファイルシステムの追加

Vitis アクセラレーション アプリケーションでは XRT を使用してハードウェアを制御します。XRT を使用すると、 Alveo™ データセンターからエンベデッドまで、さまざまなユース ケースで同じプログラミング インターフェイスを使用できます。

rootfs および sysroot に XRT カーネル ドライバー (zocl) とユーザー空間ライブラリ (xrt-dev) を追加する必要があります。xrt-dev をパッケージすると、XRT API を使用する Vitis アプリケーションをコンパイルできるようになります。

zocl のためのデバイス ツリーのアップデート

zocl ドライバー インターフェイスには、割り込み接続を有効にするためにデバイス ツリー ノードが必要です。

次は、xocl デバイス ノードの例です。

&amba {
	zyxclmm_drm {
		compatible = "xlnx,zocl";
		status = "okay";
		interrupt-parent = <&axi_intc_0>;
		interrupts = <0  4>, <1  4>, <2  4>, <3  4>,
			     <4  4>, <5  4>, <6  4>, <7  4>,
			     <8  4>, <9  4>, <10 4>, <11 4>,
			     <12 4>, <13 4>, <14 4>, <15 4>,
			     <16 4>, <17 4>, <18 4>, <19 4>,
			     <20 4>, <21 4>, <22 4>, <23 4>,
			     <24 4>, <25 4>, <26 4>, <27 4>,
			     <28 4>, <29 4>, <30 4>, <31 4>;
	};
};

詳細は、XRT の資料 (https://xilinx.github.io/XRT/master/html/yocto.html) を参照してください。

割り込みコントローラーの入力番号のアップデート

ブロック図では、割り込みコントローラーがアクセラレーション カーネルに接続されていません。自動生成されたデバイス ツリーは、ブロック図のハードウェア デザインを反映しており、v++ リンカーが割り込みコントローラーへカーネルの割り込み信号を接続する可能性は考慮していません。これらの割り込みをイネーブルするには、割り込みコントローラーの割り込み入力番号を上書きします。

次は、system-user.dtsi で AXI Interconnect のノード パラメーターを上書きする方法を示しています。

&axi_intc_0 {
	xlnx,kind-of-intr = <0x0>;
	xlnx,num-intr-inputs = <0x20>;
	interrupt-parent = <&gic>;
	interrupts = <0 89 4>;
};

/etc/xocl.txt を使用したプラットフォーム宣言

プラットフォーム名をエンベデッド プラットフォームの rootfs の /etc/xocl.txt に記述しておくと、XRT でどのプラットフォームかが判別されます。ホスト アプリケーションは、XRT API を使用してプラットフォーム名を取得し、xclbin とホスト アプリケーションのプラットフォームとの互換性をチェックできます。

CMA サイズの調整

XRT ではバッファー オブジェクトの割り当てに CMA が使用されます。bootargs やデバイス ツリーで CMA 用に十分なメモリを確保して、アクセラレーション アプリケーション実行中にメモリ不足にならないようにしてください。