ザイリンクス ランタイム (XRT) 環境を適切に使用するには、ホスト アプリケーションで、カーネルが実行されるアクセラレータ カードとデバイス ID を識別し、デバイス バイナリ (.xclbin) をデバイスにロードする必要があります。
XRT API には、アクセラレータ カードのデバイス ID を指定するために使用可能なデバイス クラス (
xrt::device
) と、ランタイムのプログラムを定義する XCLBIN クラス (xrt::xclbin
) が含まれています。これらのクラスをロードするには、ソース コードで次のインクルード文を使用する必要があります。#include <xrt/xrt_kernel.h>
次のコード部分は、ターゲット プラットフォームからデバイス ID を指定してデバイス オブジェクトを作成し、.xclbin をデバイスにロードして、プログラムの UUID を返します。
//Setup the Environment
unsigned int device_index = 0;
std::string binaryFile = parser.value("kernel.xclbin");
std::cout << "Open the device" << device_index << std::endl;
auto device = xrt::device(device_index);
std::cout << "Load the xclbin " << binaryFile << std::endl;
auto uuid = device.load_xclbin(binaryFile);
ヒント: デバイス ID は、特定のアクセラレータの
xbutil
コマンドを使用して取得できます。