目录
1. 简介
选购一款专用于 Vitis 和 Vivado 开发的主机,Vivado 的编译速度很大程度上取决于 CPU 的单核性能,尤其是在布线和综合阶段,最终选择一款迷你主机,不考虑使用独显,核性数一般即可。
按照 Single Thread Performance 对比即可,挑选一款最佳性价比产品。
对比 Ubuntu 22.04 和 Ubuntu 20.04 运行 Vivado 的兼容性。
2. 单核性能对比
2.1 PassMark
Intel i5-10500 CPU @ 3.10GHz Tb 4.5GHz:Not on the list
Intel i7-1165G7 CPU @2.80GHz Tb 4.7GHz:Not on the list
Intel i7-11800H CPU @ 2.30GHz Tb 4.6GHz:Not on the list
Intel i7-13700 CPU @ 2.10GHz Tb 5.2GHz:4116
AMD R9 7940HS @ 4.0GHz Tb 5.2GHz:3956
Intel i9-14900K CPU @ 3.2GHz Tb 6GHz:4732
2.2 geekbench
Intel i5-10500 CPU @ 3.10GHz Tb 4.5GHz:1526
Intel i7-1165G7 CPU @2.80GHz Tb 4.7GHz:1740
Intel i7-11800H CPU @ 2.30GHz Tb 4.6GHz:1900
Intel i7-13700 CPU @ 2.10GHz Tb 5.2GHz:2653
AMD R9 7940HS @ 4.0GHz Tb 5.2GHz:2460
Intel i9-14900K CPU @ 3.2GHz Tb 6GHz:3079
2.3 CPU-7
Intel i5-10500 CPU @ 3.10GHz Tb 4.5GHz:2765
Intel i7-1165G7 CPU @2.80GHz Tb 4.7GHz:2828
Intel i7-11800H CPU @ 2.30GHz Tb 4.6GHz:3091
Intel i7-13700 CPU @ 2.10GHz Tb 5.2GHz:4143
AMD R9 7940HS CPU @ 4.0GHz Tb 5.2GHz:4013
Intel i9-14900K CPU @ 3.2GHz Tb 6GHz:4780
2.4 选择 UM790 pro
我选择的配置:
- AMD R9 7940HS
- 32G DDR5-5600
- 1TB M2-2280 PCIE4.0
图片来自铭凡官网。
3. Ubuntu 22.04 物理机
3.1 安装 Ubuntu 22.04
1)安装 Ubuntu 22.04
安装 Ubuntu 后,首先安装 SSH,并设置好 IP 地址,后续要用到。
sudo apt update
sudo apt install openssh-server
2)upgrade
sudo apt update
sudo apt upgrade
3)解决黑屏
运行 upgrade 后,重启会出现显示器黑屏的情况,但可以 ping 通,也可以通过 SSH 连接。风扇似乎也在全速运行。
sudo nano /etc/default/grub
找到对应位置,添加如下内容:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset" // 这里添加 nomodeset
GRUB_CMDLINE_LINUX="rw" //这里需要填写为rw
使 grub 配置生效,并重启:
sudo update-grub
sudo reboot
3.2 安装 Vitis 2022.1
1)安装必要的库
sudo apt install libncurses5
运行 AppImage 格式的应用程序需要安装如下库:
sudo apt install libfuse2
2)修改 /opt 权限
sudo chmod 777 /opt
3)运行安装程序
./xsetup
如果跳过了 3.1-(4),虽然安装过程不会报错,但是运行 vivado,则会报错:
>> vivado
---
application-specific initialization failed: couldn't load file "librdi_commontasks.so": libtinfo.so.5: cannot open shared object file: No such file or directory
4)安装 JTAG 驱动
cd /opt/Xilinx/Vivado/2022.1/data/xicom/cable_drivers/lin64/install_script/install_drivers/
sudo ./install_drivers.sh
3.3 兼容问题
无法安装 xrt 2022.1,导致不能使用无法运行自定义 DPU Overlay。
放弃 Ubuntu 22.04 + Vivado 2022.1 组合。
4. Ubuntu 20.04 物理机
4.1 安装 Ubuntu 20.04
步骤和 Ubuntu 22.04 一致,无需解决黑屏问题。
参考如下博客安装:
Vitis AI 基础配置(安装VMware+ubuntu 20.04+必要软件)_vitis ai安装-CSDN博客
4.2 共享网络设置
4.2.1 参考博文
《Vitis AI 2.5 环境搭建(Ubuntu20.04) + 在 KV260 中配置 PYNQ》- 4.2 配置网络
《KV260 视觉 AI 套件入门--开箱报告(烧录+配置网络)-CSDN博客》
《Vivado - 远程调试 + 远程综合实现 + vmWare网络配置 + NFS 文件共享 + 使用 VIO 核》
4.2.2 UM790 网口直连
1)连接拓扑
2)DNS 注意事项
在 Host PC 端,共享的网口不可设置 DNS 服务器地址,比如:192.168.137.1,否则会导致wlan经常断联。
4.3 安装 Vitis 2022.1
与《3.2 安装 Vitis 2022.1》章节一致。
4.4 安装 Vitis 2024.2
安装指南:《UG1742: Vitis Release Notes And Installation Guide》
支持 Ubuntu 的版本:
- Ubuntu 20.04.5 LTS, 20.04.6 LTS
- Ubuntu 22.04.1 LTS, 22.04.2 LTS, 22.04.3 LTS, 22.04.4 LTS
- Ubuntu 24.04 LTS
1)安装 Vitis 2024.2 之前(Before)需要安装的包:
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++
2)安装 Vitis 2024.2 之后(After),首先会弹出提示窗口,按照要求安装即可:
sudo /opt/Xilinx/Vitis/2024.2/scripts/installLibs.sh
4.5 实用命令
在 MobaXTerm 的 SSH 中,直接运行如下命令,可实现 X11 转发,在 Windows 窗口中直接显示 Ubuntu 20.04 的内容,非常方便。
注意:请使用较新版本的 MobaXTerm,实测 v11 版本有转发窗口无法调节的问题。
可在这里生成注册文件:MobaXterm Keygen,文件保存到 MobaXterm 目录。
4.5.1 SSH 保持活跃
Settings -> Configuration -> SSH
4.5.2 X11 设置
1)常规用途,比如使用 Vivado,推荐选择第一个选项,如下图:
但是第一个选项的设置,会导致 Vitis 窗口的一些问题:
- 只能保留在主窗口(对笔记本电脑不友好,屏幕尺寸偏小)
- 窗口大小和位置不可改变
2)使用 Vitis 时,切换为最后一个选项。
- 同时设置 Run on monitor(1或者2),以确定在哪个显示器上进行显示。
显示效果如下图:
4.5.3 文件管理器
>> gnome-session # 可以加快 nautilus 启动速度
>> nautilus &
Ubuntu 系统中,U盘的自动挂载由 Nautilus 管理,通过 SSH 连接后,并不能直接使用U盘。
可以通过如下命令手动加载和卸载:
udisksctl mount -b /dev/sda1
卸载方法:直接单击 U 盘旁边的 "弹出符号"。
1)报错解决办法:
Nautilus-Share-Message:
10:04:43.952:
Called "net usershare info" but it failed:
Failed to execute child process “net” (No such file or directory)
原因分析:这个错误信息意味着你的系统上没有安装 Samba 套件,或者 net 命令不在系统的 PATH 环境变量中。net 命令是 Samba 套件的一部分,用于管理网络共享。Nautilus(文件管理器)正在尝试使用它来获取有关共享文件夹的信息,但找不到必要的执行文件。
2)安装 samba-common-bin
sudo apt install samba-common-bin
3)有时候,还需要确保 /var/lib/samba/usershares 目录存在并且权限正确。
sudo mkdir -p /var/lib/samba/usershares
sudo chmod 0770 /var/lib/samba/usershares
sudo chown root:sambashare /var/lib/samba/usershares
4.5.4 控制中心
>> gnome-control-center
4.5.5 磁盘管理器
>> gnome-disks
4.5.6 打开默认浏览器
>> gnome-www-browser
4.5.7 系统监视器
>> gnome-system-monitor
4.5.8 终端
>> gnome-terminal
4.5.9 在虚拟机中传递文件
4.6 安装 Jupyter Lab
4.6.1 下载 Anaconda
1)打开官网
2)跳过注册
3)下载对应版本
4.6.2 执行安装
./Anaconda3-2024.10-1-Linux-x86_64.sh
1)安装过程中,有三处需要介入:
- 同意协议
- 安装路径:/opt/anaconda3
- no:手动控制环境的激活
2)可以在后续通过命令配置 Conda:
>> cd /opt/anaconda3/bin/
>> ./conda init bash
3)取消配置 Conda:
conda init --reverse
4.6.3 直接运行 JupyterLab
jupyter lab --no-browser --port 8888 --ip 192.168.1.23
jupyter lab --no-browser --port 8888 --ip 192.168.137.3
- --ip 0.0.0.0 非常重要,jupyter lab 运行在服务器上并且需要从本地计算机访问 JupyterLab。
- localhost 或 127.0.0.1 只允许从服务器本身访问。
可从下面找到入口地址:
[C 2024-12-24 21:04:03.619 ServerApp]
To access the server, open this file in a browser:
file:///home/dd/.local/share/jupyter/runtime/jpserver-24343-open.html
Or copy and paste one of these URLs:
http://192.168.1.23:8888/lab?token=12331cf760b687e788e9100aac28fbb84517b2e30a3eee57
http://127.0.0.1:8888/lab?token=12331cf760b687e788e9100aac28fbb84517b2e30a3eee57
4.6.4 后台运行 JupyterLab
nohup jupyter lab --no-browser &
- nohup 命令使进程忽略挂断信号,即使终端关闭也能继续运行。
- & 符号将进程放到后台运行。
运行此命令后,你可能会看到一个输出,例如 [1] 12345,其中 12345 是进程 ID (PID)。
要停止后台运行的 JupyterLab,你需要找到其进程 ID (PID),然后使用 kill 命令。
或者,可以使用 pkill 命令直接按进程名杀死进程:
pkill jupyter
4.6.5 使用配置文件
对于更高级的配置,你可以创建一个 Jupyter 配置文件。
1)生成配置文件:
jupyter lab --generate-config
这将在 ~/.jupyter/jupyter_lab_config.py 创建一个配置文件。
2)编辑配置文件:
打开 ~/.jupyter/jupyter_lab_config.py 并修改以下设置:
c.ServerApp.open_browser = False # 禁止自动打开浏览器
c.ServerApp.port = 8888 # 设置端口(可选)
c.ServerApp.ip = '0.0.0.0' # 设置IP地址(可选,允许远程访问)
然后,你可以简单地使用 jupyter lab 命令启动 JupyterLab,它将使用配置文件中的设置。
5. 性能测试
使用官方脚本,构建一个 DPU 工程。
CPU 大部分时间都是单核在在拉满,其余核心都在等待。
1)Performance_Explore 用时统计时如下:
[23:51:10] Finished 2nd of 6 tasks (FPGA linking synthesized kernels to platform). Elapsed time: 00h 08m 02s
[23:52:10] Finished 3rd of 6 tasks (FPGA logic optimization). Elapsed time: 00h 01m 00s
[23:57:11] Finished 4th of 6 tasks (FPGA logic placement). Elapsed time: 00h 05m 00s
[00:11:14] Finished 5th of 6 tasks (FPGA routing). Elapsed time: 00h 14m 02s
[00:12:14] Finished 6th of 6 tasks (FPGA bitstream generation). Elapsed time: 00h 01m 00s
2)Vivado Implementation Defaults 用时统计时如下:
[21:44:28] Finished 2nd of 6 tasks (FPGA linking synthesized kernels to platform). Elapsed time: 00h 07m 39s
[21:45:28] Finished 3rd of 6 tasks (FPGA logic optimization). Elapsed time: 00h 01m 00s
[21:49:28] Finished 4th of 6 tasks (FPGA logic placement). Elapsed time: 00h 04m 00s
[21:54:29] Finished 5th of 6 tasks (FPGA routing). Elapsed time: 00h 05m 00s
[21:55:29] Finished 6th of 6 tasks (FPGA bitstream generation). Elapsed time: 00h 01m 00s
3)Flow_RuntimeOptimized 用时统计时如下:
[22:16:57] Finished 2nd of 6 tasks (FPGA linking synthesized kernels to platform). Elapsed time: 00h 07m 38s
[22:17:57] Finished 3rd of 6 tasks (FPGA logic optimization). Elapsed time: 00h 01m 00s
[22:21:28] Finished 4th of 6 tasks (FPGA logic placement). Elapsed time: 00h 03m 30s
[22:26:29] Finished 5th of 6 tasks (FPGA routing). Elapsed time: 00h 05m 00s
[22:27:29] Finished 6th of 6 tasks (FPGA bitstream generation). Elapsed time: 00h 01m 00s
6. 总结
尝试安装 Ubuntu 22.04,发现运行 Xilinx 有些工具有兼容性问题。故而放弃。
使用 Ubuntu 20.04 最为保险,可以通过 X11 转发实现大部分远程功能。
简单测试,后续补充更多内容。