PYNQ 是 AMD 的一个开源项目,用于快速进行自适应计算平台的开发
。
使用Python语言和库,我们可以利用FPGA和ARM协同开发的优势来构建项目
PYNQ 可与 AMD Xilinx
KV260 Vision 套件以及其他套件配合使用。
它可用于创建具有以下功能的高性能应用程序:
- 并行硬件执行
- 高帧率视频处理
- 硬件加速算法
- 实时信号处理
- 高带宽 IO
- 低延迟控制
PYNQ 使用 Jupyter Notebooks,Jupyter Notebooks是基于浏览器的交互式计算环境,其实和Colab挺像的,其实Google Coolab是基于Jupyter的项目。
只要有个浏览器,就可以在命令行中使用 PYNQ 环境对 Python 进行编程。
PYNQ的安装过程中首先需要使用到ubuntu,由于之前有提到过这里就不做赘述了。
安装 Ubuntu 后,因为不需要图形环境,为了节省一些资源开销,所以可以禁用它
查找当前默认引导目标
sudo systemctl get-default
设置启动默认值
sudo systemctl set-default multi-user
这里注意一点,可以不需要指定扩展名。系统知道这一点
重新启动后,它会启动到命令行,并允许我们节省资源。
然后就是直接安装 PYNQ
参照:https://github.com/Xilinx/Kria-PYNQ
直接clone仓库
git clone https://github.com/Xilinx/Kria-PYNQ.git
完成后进入Kria-PYNQ目录
cd Kria-PYNQ/
随后进行安装
sudo bash install.sh -b KV260
安装过程大约 20到25 分钟,接着可以使用浏览器访问 Jupyter notebook
http://<kv260_IP>:9090/lab
密码为 xilinx
PYNQ是怎么工作的呢,它直接用的Python语法。其实并非所有可用于 Python 的库都可以在这里工作,但由于架构是 aarch64,理论ARM上可用的库都可以安装在这里。
开箱即用的是硬件。例如,KV260通过DSI电缆支持Raspberry PI CAM,但PYNQ无法访问它,为了能够支持这一点,我们必须使用所谓的overlay。
Overlay
overlay或硬件library是可配置的FPGA设计,这让用户应用可以从处理系统扩展到可编程逻辑。
它们可用于加速软件应用程序或自定义硬件,使用方式与使用库的方式相同,根据需要动态去加载它们。所以我们也可以自己定制一个overlay并去使用它。
虽然PYNQ旨在与Jupyter
Nootbooks一起使用,但其实也可以在命令行上使用,我们只要使用 ssh 或主机访问kv260并开一个终端。
之后,我们需要激活 PYNQ 环境。
source /etc/profile.d/pynq_venv.sh
在此之后,我们就能用环境以及与之关联的所有 Python 库。
参考资料:Xilinx/Kria-PYNQ: PYNQ support and examples for Kria SOMs (github.com)
PYNQ 简介 — Zynq 的 Python 生产力 (Pynq)