ザイリンクス ランタイム (XRT) 環境を適切に使用するには、ソフトウェア アプリケーションがアクセラレータ カード、またはターゲット プラットフォーム、およびカーネルが実行されるデバイス ID を特定する必要があります。その後、デバイス バイナリ (.xclbin) をデバイスにロードして、PL カーネルをプログラムする必要があります。
XRT API には、ターゲット プラットフォームのデバイス ID を指定するために使用可能なデバイス クラス (
xrt::device
) と、ランタイムのハードウェアおよび PL カーネルを定義する XCLBIN クラス (xrt::xclbin
) が含まれています。これらのクラスをロードするには、ソース コードで次の #include
文を使用する必要があります。 #include <xrt/xrt_device.h>
#include <experimental/xrt_xclbin.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
コマンドを使用して取得できます。