Xilinx Alveo加速卡开发入门

作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118

参考

Vitis Unified Software Development Platform 2020.1 Documentation
Vitis Application Acceleration Development Flow Documentation
Vitis Embedded Software Development Flow Documentation
Using Vitis HLS
Methodology for Accelerating Applications with the Vitis Software Platform
Vitis libraries
Xilinx Runtime (XRT) Documentation
Xilinx Runtime (XRT) Documentation Master
创建 Vitis 加速平台第 1 部分:在 Vivado 中为加速平台创建硬件工程
2020.1 Vitis™ Application Acceleration Development Flow Tutorials
Vitis Accel Examples’ Repository
Vitis Embedded Platform Source
开发者分享 | Alveo加速卡上管理子系统 CMC 介绍
开发者分享 | 如何在Vitis中设定Kernel 的频率
AR# 71754 Alveo 数据中心加速卡 — 定制流程 — 一般类信息和已知问题
AR# 71757 Alveo Data Center Accelerator Card - Reverting Card to Factory image

Vitis

老哥现在在Ubuntu18.04上,打开Vitis,platform可以是官方的,比如Alveo或者官方开发板或者第三方开发板,也可以是自己创建的,Windows上直接双击桌面图标打开即可,

# setup XILINX_VITIS and XILINX_VIVADO variables
$ source /opt/Xilinx/Vitis/2020.1/settings64.sh
# setup XILINX_XRT
$ source /opt/xilinx/xrt/setup.sh
# specify the location of platform, /opt/xilinx/platforms/xilinx_u50_gen3x16_xdma_201920_3
# 不添加这个路径也可以,可能默认路径就是/opt/xilinx/platforms
$ export PLATFORM_REPO_PATHS=/opt/xilinx/platforms

Vitis加速框架,这个应该在各种地方都看到过了,使用OpenCL™ API来和加速器交互,
vitis accelerationVitis加速的软件架构,Host可以是X86 PC,也可以是MPSOC中的ARM,思维不要局限了,Host Processor和Programmable Logic之间通过PCIe或者AXI通信,
vitis execution modelVitis编译流程,一个应用有两个部分,Host Application和FPGA Kernels,老哥我的理解,前者负责数据的调度、控制,后者是实际硬件加速的部分,
vitis build process基本流程已经清楚,现在按照官网的例子,跑个Demo,看看Vitis怎样使用,

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

初始化环境,然后进入工程目录,这是一个深度学习里面脉动阵列的矩阵乘法程序,Xilinx已经写好了Makefile,当然也可以按照文档自己敲g++v++命令,修改design.cfg适配自己的platform,

$ cd ~/project/vitis/Vitis-Tutorials/docs/Pathway3/reference-files/run
$ ls -l
总用量 8
-rw-r--r-- 1 qe qe   91 1016 14:18 design.cfg
-rw-r--r-- 1 qe qe 1944 1016 14:18 Makefile
$ make help
Makefile Usage:
  make build TARGET=<sw_emu/hw_emu/hw> PLATFORM=<FPGA platform>
      Command to generate the design for specified Target and Device.

  make run TARGET=<sw_emu/hw_emu/hw> PLATFORM=<FPGA platform>
      Command to run for specified Target.

  make exe 
      Command to generate host.

  make xclbin 
      Command to generate hardware platform files(xo,xclbin).

  make clean 
      Command to remove the generated files.

编译,老哥的电脑i3-9100F,4核4.0GHz的CPU,内存16GB,得1小时,感觉很久,我一个综艺都要看完了,编译阶段vivado的CPU占用率基本跑满,内存占了8GB,

$ source /opt/Xilinx/Vitis/2020.1/settings64.sh && source /opt/xilinx/xrt/setup.sh && export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
$ make build TARGET=hw PLATFORM=xilinx_u50_gen3x16_xdma_201920_3
# 使用图形化的方式查看结果
$ vitis_analyzer mmult.hw.xilinx_u50_gen3x16_xdma_201920_3.xclbin.link_summary

在硬件上执行一下,

$ ./host mmult.hw.xilinx_u50_gen3x16_xdma_201920_3.xclbin
Found Platform
Platform Name: Xilinx
INFO: Reading mmult.hw.xilinx_u50_gen3x16_xdma_201920_3.xclbin
Loading: 'mmult.hw.xilinx_u50_gen3x16_xdma_201920_3.xclbin'
TEST PASSED 
# or
$ make run TARGET=hw PLATFORM=xilinx_u50_gen3x16_xdma_201920_3

仿真,创建xrt.ini文件,

$ cat xrt.ini 
[Debug]
profile=true
timeline_trace=true
data_transfer_trace=fine

更改design.cfg,添加profile_kernel=data:all:all:all,重新编译,查看结果,

$ source /opt/Xilinx/Vitis/2020.1/settings64.sh && source /opt/xilinx/xrt/setup.sh && export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
$ make build TARGET=hw_emu PLATFORM=xilinx_u50_gen3x16_xdma_201920_3
$ vitis_analyzer mmult.hw_emu.xilinx_u50_gen3x16_xdma_201920_3.xclbin.run_summary

2020-10-19 19-50-20.png

Vivado

如果需要用传统方法开发Alveo程序,需要下载一些文件,但是要申请,回去让公司直接找FAE要吧,Xilinx是不推荐这样玩的,还是乖乖的用Vitis吧。
19为确保客户映像在运行时成功加载到 Alveo 数据中心加速卡上,必须使用以下设置创建 MCS 文件,

  • 内存部件:mt25qu01g-spi-x1_x2_x4
  • 起始地址:0x01002000

DDR,以U200为例,3个SLR,4个DDR,QSFP所在SLR2,对应DDR[3],所以网络数据处理的时候优先使用DDR[3],除非SLR2资源不够了,那就另当别论了。
2021-08-30 23-11-402021-08-30 22-35-41

问题

AR# 73269

试图在 Alveo U50 电路板上对配置内存器件进行编程时,如果将非配置分配信息 I/O 引脚设置为 "Pull-up"状态,则在对 MCS 进行编程时会出现以下错误:

ERROR: [Labtools 27-2149] File /opt/Xilinx/Vivado/2019.2/data/xicom/cfgmem/bitfile/spi_xcu50_pullup.bit not found.Check file name and file permissions.
ERROR: [Labtools 27-2149] File C:/Xilinx/Vivado/2019.2/data/xicom/cfgmem/bitfile/spi_xcu50_pullup.bit not found.Check file name and file permissions.

这是 2019.2 版中的一个已知问题。下载 bitfile.zip 文件,将 C:\Xilinx\Vivado\2019.2\data\xicom\cfgmem/data/xicom/cfgmem 中的 bitfiles.zip 文件替换为本答复记录中提供的版本。

./elaborate.sh: 行 20: LIBRARY_PATH: 未绑定的变量

export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值