ALVEO U50でVitis-Tutorials

Vitis Tutorialはgithubの次のリポジトリをダウンロードして進めていきます。

$ git clone https://github.com/Xilinx/Vitis-Tutorials

まず、読むのはdocs/vitis-getting-startedです。

次の順にセットアップを行い、「3. Building the Accelerated Application — Essential Concepts」でサンプルデザインをビルドします。

  1. Programming and Execution Model
  2. Setting up the Alveo Data Center Accelerator Cards and Vitis Core Development Kit
  3. Building the Accelerated Application — Essential Concepts
$ cd Vitis-Tutorials/docs/Pathway3/reference-files/run

インストールしたPlatformを確認します。

$ ls /opt/xilinx/platforms/
xilinx_u50_xdma_201920_1

Makefileはデフォルトで次のようになっています。

TARGET := sw_emu
PLATFORM := xilinx_u200_xdma_201830_2

PLATFORMをインストールしているPlatformに変更します。

TARGET := sw_emu
PLATFORM := xilinx_u50_xdma_201920_1

design.cfgもデフォルトは次のようになっています。

platform=xilinx_u200_xdma_201830_2
debug=1

[connectivity]
nk=mmult:1:mmult_1

platformをインストールしているplatformに修正します。

platform=xilinx_u50_xdma_201920_1
debug=1

[connectivity]
nk=mmult:1:mmult_1

コンパイル前のセットアップ

コンパイル前に次のように環境変数のセットアップをします。

$ source /opt/Xilinx/Vitis/2019.2/settings64.sh
$ source /opt/xilinx/xrt/setup.sh

sw_emuのコンパイル

まずはsw_emuをコンパイルします。

次のようにmake buildコマンドを実行します。

$ make build
<<<途中は省略>>>
emconfigutil --platform xilinx_u50_xdma_201920_1

****** configutil v2019.2 (64-bit)
  **** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
    ** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.

INFO: [ConfigUtil 60-895]   Target platform: /opt/xilinx/platforms/xilinx_u50_xdma_201920_1/xilinx_u50_xdma_201920_1.xpfm
INFO: [ConfigUtil 60-1578]   This platform contains Device Support Archive '/opt/xilinx/platforms/xilinx_u50_xdma_201920_1/hw/xilinx_u50_xdma_201920_1.dsa'
emulation configuration file `emconfig.json` is created in current working directory

hw_emuのコンパイル

MakefileのTARGETを次のようにhw_emuに変更してmakeします。

TARGET := hw_emu
$ make build
<<<途中は省略>>>
emconfigutil --platform xilinx_u50_xdma_201920_1

****** configutil v2019.2 (64-bit)
  **** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
    ** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.

INFO: [ConfigUtil 60-895]   Target platform: /opt/xilinx/platforms/xilinx_u50_xdma_201920_1/xilinx_u50_xdma_201920_1.xpfm
INFO: [ConfigUtil 60-1578]   This platform contains Device Support Archive '/opt/xilinx/platforms/xilinx_u50_xdma_201920_1/hw/xilinx_u50_xdma_201920_1.dsa'
emulation configuration file `emconfig.json` is created in current working directory

hw

最後にMakefileのTARGETをhwに変更してコンパイルします。

TARGET := hw
$ make build
<<<途中は省略>>>
emconfigutil --platform xilinx_u50_xdma_201920_1

****** configutil v2019.2 (64-bit)
  **** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
    ** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.

INFO: [ConfigUtil 60-895]   Target platform: /opt/xilinx/platforms/xilinx_u50_xdma_201920_1/xilinx_u50_xdma_201920_1.xpfm
INFO: [ConfigUtil 60-1578]   This platform contains Device Support Archive '/opt/xilinx/platforms/xilinx_u50_xdma_201920_1/hw/xilinx_u50_xdma_201920_1.dsa'
emulation configuration file `emconfig.json` is created in current working directory

real    54m21.755s
user    1m22.786s
sys 0m10.856s

hwをrun

最後にhwでrunしてみましょう。

$ make run
emconfigutil --platform xilinx_u50_xdma_201920_1

****** configutil v2019.2 (64-bit)
  **** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
    ** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.

INFO: [ConfigUtil 60-895]   Target platform: /opt/xilinx/platforms/xilinx_u50_xdma_201920_1/xilinx_u50_xdma_201920_1.xpfm
INFO: [ConfigUtil 60-1578]   This platform contains Device Support Archive '/opt/xilinx/platforms/xilinx_u50_xdma_201920_1/hw/xilinx_u50_xdma_201920_1.dsa'
emulation configuration file `emconfig.json` is created in current working directory
./host mmult.hw.xilinx_u50_xdma_201920_1.xclbin
Found Platform
Platform Name: Xilinx
INFO: Reading mmult.hw.xilinx_u50_xdma_201920_1.xclbin
Loading: 'mmult.hw.xilinx_u50_xdma_201920_1.xclbin'
TEST PASSED

TEST PASSEDって表示されたけど、実際に何をしたのかよくわからない。