作者

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加速的软件架构,Host可以是X86 PC,也可以是MPSOC中的ARM,思维不要局限了,Host Processor和Programmable Logic之间通过PCIe或者AXI通信,
Vitis编译流程,一个应用有两个部分,Host Application和FPGA Kernels,老哥我的理解,前者负责数据的调度、控制,后者是实际硬件加速的部分,
基本流程已经清楚,现在按照官网的例子,跑个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

Vivado

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

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

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

问题

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

Xilinx Alveo加速卡开发入门相关推荐

  1. Xilinx Alveo加速卡开发环境搭建

    作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 网页版帮助 官网Alve ...

  2. Hololens Unity 开发入门 之 Hello HoloLens

    Hololens Unity 开发入门 之 Hello HoloLens~ 本文主要记录 HoloLens Unity 开发入门 ~ 一.说在前面的话 Unity 对 VR AR 甚至 将来的 MR ...

  3. 【Arduino】开发入门教程【一】什么是Arduino

    Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...

  4. unity开发入门_Unity游戏开发终极入门指南

    unity开发入门 Unity is a great tool for prototyping everything from games, to interactive visualisations ...

  5. 《iOS 8应用开发入门经典(第6版)》——第1章,第1.6节小结

    本节书摘来自异步社区<iOS 8应用开发入门经典(第6版)>一书中的第1章,第1.6节小结,作者 [美]John Ray(约翰 雷),更多章节内容可以访问云栖社区"异步社区&qu ...

  6. openresty 前端开发入门五之Mysql篇

    2019独角兽企业重金招聘Python工程师标准>>> openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysq ...

  7. Android项目驱动式开发教程 第2版,《Android项目驱动式开发教程》第一章开发入门.ppt...

    <Android项目驱动式开发教程>第一章开发入门 1.4 项目框架分析 4 android:versionName="1.0" > 5 8 第9行代码andro ...

  8. 《SAP FIORI 开发入门》课程答疑 第二期

    课程上线已经一个星期,本人也接到了同学们提出的一些问题.在这里把典型的问题的回答重新整理一下,帮助后来的同学. 再次放上课程的连接: SAP FIORI开发入门 希望老师能够再放开一章免费的课程. 已 ...

  9. JSP WEB开发入门基础到高手进阶教程002

    JSP WEB开发入门基础到高手进阶教程 -------开发入门 JSP与微软的Active Server Pages 兼容,但它是使用类似HTML的卷标以及Java程序代码段而不是VBScript. ...

最新文章

  1. 报告 | 数字孪生城市研究报告(2019年)
  2. linux 命令之电子书chm格式下载
  3. 浅谈.NET中的类型和装箱、拆箱原理
  4. Android如何优雅地防止Bean类混淆
  5. [C语言程序设计_现代方法(第2版)] 第二章 C语言基本概念
  6. 03-instancing 工程分析详解
  7. CSS-垂直|水平居中问题的解决方法总结
  8. spring-data学习上
  9. zul使用java_java – 从Jar加载ZUL
  10. c语言贪吃蛇(简易版本含完整代码)
  11. appium ios 下拉刷新输入框输入后收起键盘
  12. 08系统装iss_安全信息系统| ISS | 第1部分
  13. TensorFlow - 正弦曲线
  14. 如何将多张图片转换为pdf格式
  15. 金蝶一直显示服务器未启动怎么办,金蝶服务器数据库未启动怎么办
  16. ubuntu18.04根目录已满造成开机失败报错Fail to start....
  17. Linux源码目录结构
  18. px、em、rem单位间的区别
  19. 手机 查看java源码_pin.java 源代码在线查看 - 一个专门为手机写的程序 资源下载 虫虫电子下载站...
  20. JSON 格式化和校验工具

热门文章

  1. python返回列表中最大和第二大的元素
  2. 乐趣国学—品读《弟子规》中的“余力学文”之道
  3. linux删除带用户的群组,Linux账号群组删除等相关操作
  4. OpenGL ES:绘制函数glDrawArrays 和 glDrawElements 的区别
  5. 清华伯克利深圳学院计算机,刘乐遥:CSP助我入清华-伯克利深圳学院
  6. KEGG pathway 数据库
  7. php redis 唯一id,PHP + Redis 实现一个简单的twitter
  8. 一个优秀的领导者,无非就这3点
  9. 模电课设 方波—三角波—正弦波信号发生器
  10. 协同过滤系统基于用户的评分预测