重要: この演習では、コンパイルしたカーネル ライブラリの xclbin を実行するために Alveo アクセラレータ カードを使用する必要があります。Alveo カードをインストールしたマシンにアクセスがない場合、この演習を終了できません。
ハードウェア実行では、ホスト プログラムがホスト マシンで実行され、カーネル コードがザイリンクス デバイス上の Alveo アクセラレータ カードで実行されます。ハードウェア実行で取得されるパフォーマンス データが実際のパフォーマンスになります。前の演習で説明したプロファイル サマリおよびタイムライン トレース レポートも使用できます。
ヒント: システム ビルドのデバイス プロファイリングオンにすると (
-t hw
)、全体的なアプリケーションのパフォーマンスに悪影響を与える可能性があります。この機能は、パフォーマンス デバッグにのみ使用し、プロダクション ビルドではオフにするようにしてください。
この演習を実行する前に、アプリケーションのビルド、エミュレーションの実行、およびプロファイルおよびタイムライン トレース レポートの生成演習を確認して実行しておきます。この演習では、これらの演習と同じソース ファイルおよびオプションを使用します。ただし、ホストおよびハードウェア プラットフォームをビルドするのに必要なコマンドすべてを表示はしません。
ザイリンクス ボードまたはデバイスでアプリケーションを実行する前に、必要なシステム モードでデザインをビルドする必要があります。これは、ハードウェアをビルドする際に -t hw
xocc オプションを使用して指定します。
ホスト ソフトウェアおよびハードウェアのビルド方法および <build_target> の指定方法については、アプリケーションのビルド演習を参照してください。
重要: サンプルを実行する前に、ランタイム スクリプトを読み込むようにしてください。
#Setup runtime. XILINX_XRT will be set in this step #Note that it's only necessary to setup runtime before deployment on hardware. source /opt/xilinx/xrt/setup.shヒント: また、XCL_EMULATION_MODE 環境は設定しないようにします。前の演習では、これを
sw_emu
またはhw_emu
に設定しました。
次のコマンドを実行します。
unset XCL_EMULATION_MODE
ホスト プログラムおよびハードウェア プラットフォーム (xclbin) を使用すると、アプリケーションをザイリンクス ボードまたはデバイスで実行できます。ホスト プログラムおよびハードウェア プラットフォームをまだビルドしていない場合は、次のコマンドを使用します。
重要: FPGA バイナリ ファイルの合成およびプリメンテーションのため、ハードウェア ターゲットのコンパイルいおよびリンクにはかなり時間がかかることがあります。
source /opt/Xilinx/SDx/2019.1/settings64.sh
source /opt/xilinx/xrt/setup.sh
#make sure working path is in reference-files/run
xcpp -I$XILINX_XRT/include/ -I$XILINX_VIVADO/include/ -Wall -O0 -g -std=c++14 ../src/host.cpp -o 'host' -L$XILINX_XRT/lib/ -lOpenCL -lpthread -lrt -lstdc++
xocc -t hw --platform xilinx_u200_xdma_201830_1 -c -k mmult -I'../src' -o'mmult.hw.xilinx_u200_xdma_201830_1.xo' '../src/mmult.cpp'
xocc -t hw --platform xilinx_u200_xdma_201830_1 -l --nk mmult:1:mmult_1 -o'mmult.hw.xilinx_u200_xdma_201830_1.xclbin' mmult.hw.xilinx_u200_xdma_201830_1.xo
アプリケーションの実行
./host mmult.hw.xilinx_u200_xdma_201830_1.xclbin
アプリケーションが問題なく実行されると、コンソールに次のように表示されます。
Loading: 'mmult.hw.xilinx_u200_xdma_201830_1.xclbin'
TEST PASSED
xbutil
の使用はオプションですが、ザイリンクス ボードに関する解析およびデバッグに便利なツールです。たとえば、次のコマンドを実行してボード ステータスを確認できます。
xbutil query
ボード ステータス、計算ユニット ステータスなどが表示されます。xbutil
の詳細は、『SDx コマンドおよびユーティリティ リファレンス ガイド (UG1279) および『SDAccel デバッグ ガイド』 (UG1281) を参照してください。
ここまでで、SDAccel 開発環境でアプリケーションをビルドして実行するために必要な手順を理解できたはずです。これには、ソフトウェア プログラムおよびカーネルのコード記述、アプリケーションのビルド、ソフトウェアおよびハードウェア エミュレーションの実行、レポートの確認、アクセラレータ カードでのアプリケーションの実行が含まれます。次のステップでは、これを踏まえた上で最初のプログラムをビルドします。
Copyright© 2019 Xilinx