ALVEO U50のセットアップ

セットアップにはUG1370(j_ug1370-u50-installation.pdf)を参考にします。

XRTのインストール

下記のURLからXRTをインストールします。

https://japan.xilinx.com/products/boards-and-kits/alveo/u50.html#gettingStarted

ダウンロードしたファイルは下記のファイル名です。

xrt_201920.2.3.1301_18.04-xrt.deb

次のようにXRTをインストールします。

$ sudo apt install ./xrt_201920.2.3.1301_18.04-xrt.deb
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
注意、'./xrt_201920.2.3.1301_18.04-xrt.deb' の代わりに 'xrt' を選択します
以下のパッケージが新たにインストールされます:
  xrt
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
8,920 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 46.1 MB のディスク容量が消費されます。
取得:1 /home/hidemi/Downloads/xrt_201920.2.3.1301_18.04-xrt.deb xrt amd64 2.3.1301 [8,920 kB]
以前に未選択のパッケージ xrt を選択しています。
(データベースを読み込んでいます ... 現在 306228 個のファイルとディレクトリがインストールされています。)
.../xrt_201920.2.3.1301_18.04-xrt.deb を展開する準備をしています ...
xrt (2.3.1301) を展開しています...
xrt (2.3.1301) を設定しています ...
Unloading old XRT Linux kernel modules
rmmod: ERROR: Module xocl is not currently loaded
rmmod: ERROR: Module xclmgmt is not currently loaded
Invoking DKMS common.postinst for xrt
Loading new xrt-2.3.1301 DKMS files...
Building for 5.0.0-37-generic
Building initial module for 5.0.0-37-generic
Secure Boot not enabled on this system.
Done.

xocl:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.0.0-37-generic/updates/dkms/

xclmgmt.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.0.0-37-generic/updates/dkms/

depmod...

DKMS: install completed.
Finished DKMS common.postinst
Loading new XRT Linux kernel modules
Installing MSD / MPD daemons
Skipping pyopencl installation...

運用ターゲット プラットフォームのインストール

ダウンロードしたファイルは下記のファイル名です。

xilinx-u50-xdma-201920.1-2699728_18.04.deb

$ sudo apt install ./xilinx-u50-xdma-201920.1-2699728_18.04.deb
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
注意、'./xilinx-u50-xdma-201920.1-2699728_18.04.deb' の代わりに 'xilinx-u50-xdma' を選択します
以下のパッケージが新たにインストールされます:
  xilinx-u50-xdma
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
67.8 MB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 0 B のディスク容量が消費されます。
取得:1 /home/hidemi/Downloads/xilinx-u50-xdma-201920.1-2699728_18.04.deb xilinx-u50-xdma all 201920.1-2699728 [67.8 MB]
以前に未選択のパッケージ xilinx-u50-xdma を選択しています。
(データベースを読み込んでいます ... 現在 306541 個のファイルとディレクトリがインストールされています。)
.../xilinx-u50-xdma-201920.1-2699728_18.04.deb を展開する準備をしています ...
xilinx-u50-xdma (201920.1-2699728) を展開しています...
xilinx-u50-xdma (201920.1-2699728) を設定しています ...
DSA package installed successfully.
Please flash card manually by running below command:
sudo /opt/xilinx/xrt/bin/xbmgmt flash --update --shell xilinx_u50_xdma_201920_1

ファームウェアの書き込み

次にファームウェアを書き込むようです。

$ sudo /opt/xilinx/xrt/bin/xbmgmt flash --update --shell xilinx_u50_xdma_201920_1
     Status: shell needs updating
     Current shell: xilinx_u50_GOLDEN_9
     Shell to be flashed: xilinx_u50_xdma_201920_1
Are you sure you wish to proceed? [y/n]: y

Updating SC firmware on card[0000:01:00.0]
INFO: found 5 sections
..............................
INFO: Loading new firmware on SC

Updating shell on card[0000:01:00.0]
INFO: ***Found 507 ELA Records
Idcode byte[0] ff
Idcode byte[1] 20
Idcode byte[2] bb
Idcode byte[3] 21
Idcode byte[4] 10
Enabled bitstream guard. Bitstream will not be loaded until flashing is finished.
Erasing flash.........................
Programming flash.........................
Cleared bitstream guard. Bitstream now active.
Successfully flashed Card[0000:01:00.0]

1 Card(s) flashed successfully.
Cold reboot machine to load the new image on card(s).

カードの検証

ファームウェアが書き込めたらコールドスタートして、セットアップします。

$ source /opt/xilinx/xrt/setup.sh
XILINX_XRT      : /opt/xilinx/xrt
PATH            : /opt/xilinx/xrt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LD_LIBRARY_PATH : /opt/xilinx/xrt/lib:
PYTHONPATH     : /opt/xilinx/xrt/python:

lspciで確認

もう一度、lspciで確認します。

$ sudo lspci -vd 10ee:
01:00.0 Processing accelerators: Xilinx Corporation Device 5020
    Subsystem: Xilinx Corporation Device 000e
    Flags: bus master, fast devsel, latency 0
    Memory at a2000000 (64-bit, prefetchable) [size=32M]
    Memory at a4000000 (64-bit, prefetchable) [size=128K]
    Capabilities: [40] Power Management version 3
    Capabilities: [60] MSI-X: Enable+ Count=33 Masked-
    Capabilities: [70] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [1c0] #19
    Capabilities: [e00] Access Control Services
    Kernel driver in use: xclmgmt
    Kernel modules: xclmgmt

01:00.1 Processing accelerators: Xilinx Corporation Device 5021
    Subsystem: Xilinx Corporation Device 000e
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at a0000000 (64-bit, prefetchable) [size=32M]
    Memory at a4020000 (64-bit, prefetchable) [size=64K]
    Memory at 90000000 (64-bit, prefetchable) [size=256M]
    Capabilities: [40] Power Management version 3
    Capabilities: [60] MSI-X: Enable+ Count=33 Masked-
    Capabilities: [70] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [e00] Access Control Services
    Kernel driver in use: xocl
    Kernel modules: xocl

カードの詳細取得

カード情報を取得します。

$ sudo /opt/xilinx/xrt/bin/xbmgmt flash --scan
Card [0000:01:00.0]
    Card type:      u50
    Flash type:     SPI
    Flashable partition running on FPGA:
        xilinx_u50_xdma_201920_1,[ID=0x000000005daa78ef],[SC=5.0.13]
    Flashable partitions installed in system:
        xilinx_u50_xdma_201920_1,[ID=0x000000005daa78ef],[SC=5.0.13]

カードのテスト

カードのテストを行ってみます。

$ /opt/xilinx/xrt/bin/xbutil validate
INFO: Found 1 cards

INFO: Validating card[0]: xilinx_u50_xdma_201920_1
INFO: == Starting AUX power connector check:
AUX power connector not available. Skipping validation
INFO: == AUX power connector check SKIPPED
INFO: == Starting PCIE link check:
INFO: == PCIE link check PASSED
INFO: == Starting verify kernel test:
..INFO: == verify kernel test PASSED
INFO: == Starting DMA test:

Host -> PCIe -> FPGA (HBM[0]) write BW: Average: 11993 MB/s
Host <- PCIe <- FPGA (HBM[0]) read BW: Average: 11082 MB/s
INFO: == DMA test PASSED
INFO: == Starting device memory bandwidth test:
.....
FPGA <- HBM (8 channel(s) sum)  Average Read  Bandwidth: 50505.631360 MBps
FPGA -> HBM (8 channel(s) sum)  Average Write Bandwidth: 50490.136041 MBps
INFO: == device memory bandwidth test PASSED
INFO: Card[0] validated successfully.

INFO: All cards validated successfully.

おそらく、想定通り動作しているのでしょう。