在Vitis上对AlveoU280进行初步配置以及案例测试

在Vitis上对AlveoU280进行初步配置以及案例测试

在之前完成过Vitis的下载安装之后,终于放弃了虚拟机,直接安装了linux系统开始进行开发,之后又重新下载安装了Vitis,并完成了Alveo板卡的相关配置。文章开始之前,还是建议如果要做这方面的开发,不如先阅读Alveo的开发手册(UG1301)。
这里给出一个Vitis总的安装文档,其他相关的可以自行查找
Vitis2020.1_docs



踩坑记录

因为是第一次安装,而且以前没有阅读文档的习惯,所以安装过程可以说的上是非常坎坷了,零零散散下载Vitis下了三四次,重装系统重装了七八次。所以先记录一下,避免以后遇到相同问题时没有可以查询的资料了。

1.Vitis的下载

这里的话首先基于你对自己的网络有没有自信,虽然有代理,但是由于Vitis的网上直接下载最少也得20G+,所以可能随时中断,一旦中断,即使再重启也可能会出现某些未知的错误。So,不如直接下载一个安装包,同样的,网络稍好的直接下载,不行就百度云吧,因为我没用百度云,所以也没有相关的链接了,以后再说。

2.Ubuntu18.04卡在开机界面

这里我其实不是特别清楚到底是什么原因导致的,在debug的过程中重装了多次系统,但是依旧没搞明白。在每一个步骤结束后都有可能出现,甚至大部分卡的开机页面,什么clean啊,User Manage 121之类的,成功,失败,都出现过,网上给出的各种办法都使用过,但是对我的电脑来说都没什么用,这里的问题其实之前就遇到过,但是以为两次不是相同的问题,所以就没有考虑。以下我把我看到的方法记录以下。

1、磁盘满了
卡在开机页面后按“Ctrl + Alt +F1/F2/F3"进入到命令行页面,输入账号密码后,运行命令
df -h
可以看一下自己的磁盘是不是满了,注意,只看自己的主盘,snap对应的loop本身就是满的,并不会对你的电脑造成影响,并且里面还下载了和gui相关的文件,如果删除了,可能打不开开机页面的原因就+1了。

2、显卡驱动下载失败或者不适配
两种方法,一种就是像上面一样进入命令行页面,然后先删除现有的显卡驱动

sudo apt-get --purge remove nvidia*

之后再重新安装显卡驱动
这里推荐这位大佬的安装和更新方法
以下是对大佬的命令的学习,防止找不到了

ubuntu-drivers devices  //查看与自己显卡适配的驱动
sudo ubuntu-drivers autoinstall1  //自动安装适配的驱动

或者不删除,直接更新驱动
这个的话需要通过grub页面进入到Ubuntu recovery然后再操作
下面说一下没有grub页面的怎么办

3、grub页面的配置

sudo gedit /etc/default/grub  //打开grub配置页面

把grub_timeout_style=hidden给删除或者注释掉,把grub_cmdline_linux_default修改为text。
这里小提示以下 修改文本页面是如果是在黑页面里做的,那就用vi就行,另外编辑的时候按o可以相当于按了回车再开始编辑。
完成这一步之后,再重启就可以了。更新驱动的话,就利用如下方式

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

然后打开软件与更新 ——》 选择附加驱动 ——》 选择要应用的驱动版本 ——》点击应用更改


4、修改Ubuntu内核
这个方法就是最后解决我的问题的方法,但是会造成进入gui页面后比例不协调之类的问题,我不太确定是不是只有某个版本会出现这个问题,我个人感觉是Ubuntu的开机那个过程和一些显卡不兼容,所以这里直接跳过使用显卡,使用Ubuntu内核来执行gui页面即可
开机直接按e,进入到编辑页面后,在quite splash 后面加上 nomodeset 重启即可,在一些博主的文章里看到这个命令是对应的Nvidia显卡的,如果开机后页面比例不协调可以同上一步骤
打开软件与更新 ——》 选择附加驱动 ——》 选择要应用的驱动版本 ——》点击应用更改
但是我没有尝试,暂时比例不协调不影响我使用

提示:以下是本篇文章正文内容,下面案例可供参考

一、安装Vitis

先配置安装Vitis所需要的包

sudo add-apt-repository ppa:xorg-edgers/ppa 
sudo apt-get update
sudo apt-get install libgl1-mesa-glx
sudo apt-get install libgl1-mesa-dri
sudo apt-get install libgl1-mesa-dev
sudo add-apt-repository --remove ppa:xorg-edgers/ppa
sudo apt install net-tools
sudo apt-get install -y unzip
sudo apt install gcc
sudo apt install g++
sudo apt install python
ln -s /usr/bin/python2 /usr/bin/python

然后冷启动

在文件,其他位置,磁盘里新建文件夹

mkdir tools

然后更改该文件夹的所有权

sudo chown 用户名 /tools

进入到tools文件夹中新建文件夹Xilinx

cd tools && mkdir Xilinx

然后就安装上一篇文章一步步next点完就可以了

另外在这里提一下上一篇文章中的一个小问题,安装完成后桌面没有图标没关系,左下角里面有

二、Xilinx Runtime 安装

下载完成后:

sudo apt install <deb-dir>/<xrt_filename_OS>.deb

正常安装即可,如果过程中一些包的安装出问题了或者网络原因下载失败了,就用一些镜像网站下载,之后再运行上述命令即可。

三、Alveo 安装

https://www.xilinx.com/products/boards-and-kits/alveo/u280.html#gettingStarted
这里还是要把链接里的2,3都下载了,之后运行下述代码即可。

sudo apt install <deb-dir>/<deployment_shell_filename_OS>.deb
sudo apt install <deb-dir>/<development_shell_filename_OS>.deb

四、环境变量配置

 #setup XILINX_VITIS and XILINX_VIVADO variables
 source <Vitis_install_path>/Vitis/2020.1/settings64.sh
 #setup XILINX_XRT
 source /opt/xilinx/xrt/setup.sh
export PLATFORM_REPO_PATHS=<path to platforms>

这里完成后就可以正常运行Vitis创建项目,运行测试案例了,但是还有个问题就是运行的时候可能缺少一个C语言的环境变量配置

export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
source /etc/profile

或者直接

sudo gedit /etc/profile

然后在文件里添加LIBRARY_PATH=/usr/lib/x86_64-linux-gnu


总结

大致就是通过上述的方法可以初步安装完成并且运行成功

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的 Vitis HLS 设计案例: 假设我们有一个输入为整数数组和一个常数值的函数,需要将数组中的每个元素与该常数值相加并返回新的数组。我们可以使用 Vitis HLS 设计这个函数。 第一步:定义输入和输出 我们需要定义输入和输出的数据类型和大小。在这个案例中,我们定义输入为一个大小为 10 的整数数组和一个常数值,输出为一个大小为 10 的整数数组。因此,我们可以使用以下代码定义输入和输出: ```c++ #define N 10 typedef int in_data_t; typedef int out_data_t; void array_add(in_data_t input[N], in_data_t constant, out_data_t output[N]) { ... } ``` 第二步:编写算法 我们需要编写一个算法,将输入数组中的每个元素与常数值相加,并将结果存储在输出数组中。这可以使用一个简单的 for 循环完成,如下所示: ```c++ void array_add(in_data_t input[N], in_data_t constant, out_data_t output[N]) { for (int i = 0; i < N; i++) { output[i] = input[i] + constant; } } ``` 第三步:进行 Vitis HLS 优化 在进行 Vitis HLS 优化之前,我们需要将输入和输出数据类型转换为 ap_int 和 ap_fixed 类型,以便在 FPGA 上进行计算。我们还需要添加一些 HLS 指令来告诉编译器如何优化代码。 ```c++ #include "ap_int.h" #include "ap_fixed.h" #define N 10 typedef ap_int<32> in_data_t; typedef ap_int<32> out_data_t; #pragma HLS INTERFACE s_axilite port=return bundle=control #pragma HLS INTERFACE s_axilite port=input bundle=control #pragma HLS INTERFACE s_axilite port=constant bundle=control #pragma HLS INTERFACE s_axilite port=output bundle=control void array_add(in_data_t input[N], in_data_t constant, out_data_t output[N]) { #pragma HLS PIPELINE II=1 #pragma HLS INTERFACE axis port=input #pragma HLS INTERFACE axis port=output for (int i = 0; i < N; i++) { #pragma HLS UNROLL output[i] = input[i] + constant; } } ``` 在这个例子中,我们使用了以下 HLS 指令: - `#pragma HLS PIPELINE II=1`:指定流水线间隔为 1,以最大化吞吐量。 - `#pragma HLS INTERFACE axis port=input` 和 `#pragma HLS INTERFACE axis port=output`:指定输入和输出流的类型为 AXIS,这是一种常用的数据接口。 - `#pragma HLS UNROLL`:指定循环展开,以最大化吞吐量。 第四步:编译和验证 最后,我们需要使用 Vivado HLS 编译代码,并在 FPGA 上验证结果是否与预期相符。这可以通过 Vivado 开发环境中的仿真和合成工具完成。如果一切正常,我们可以将生成的 IP 核组成一个 Vivado 设计,并将其部署到 FPGA 上以实现加速。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值