Vitis AI 环境搭建 KV260 PYNQ 安装 要点总结

目录

1. 环境

2. 工具及版本介绍

2.1 工具版本兼容性

2.2 DPU结构

2.3 DPU命名规则

3. Vitis AI 配置要点

3.1 配置安装 Docker 库

3.2 Install Docker Engine

3.3 添加 Docker 用户组并测试

3.4 克隆 Vitis AI 库

3.5 构建 Docker (直接抓取)

3.6 运行 Docker

3.7 安装 Jupyter Lab

4. PYNQ for KV260 配置要点

4.1 烧录 Ubuntu 22.04 LTS

4.2 配置网络

4.3 关闭图形桌面

4.4 添加 AMD 软件源并更新升级 Kernel

4.5 配置 Docker (optional)

4.6 安装 xrt zocl driver (optional)

4.7 安装 Pynq (需配置代理)

4.8 Jupyter Lab 安装中文支持包

4.9 域名解析


1. 环境

Host: Ubuntu 22.04.4 LTS

Embeded: kv260 with Ubuntu 22.04

AMD KV260 starts with Ubuntu 22.04 icon-default.png?t=N7T8https://www.amd.com/zh-cn/products/system-on-modules/kria/k26/kv260-vision-starter-kit/getting-started-ubuntu/getting-started.html

2. 工具及版本介绍

GitHub - Xilinx/Vitis-AI at 2.5Vitis AI is Xilinx’s development stack for AI inference on Xilinx hardware platforms, including both edge devices and Alveo cards. - GitHub - Xilinx/Vitis-AI at 2.5icon-default.png?t=N7T8https://github.com/Xilinx/Vitis-AI/tree/2.5

2.1 工具版本兼容性

IP and Tool Version Compatibility — Vitis™ AI 3.0 documentation

Software Tools VersionDPUCDZX8G IP VersionViTis AI Release Version
Vivado / Vitis / Petalinux 2022.24.1v3.0
Vivado / Vitis / Petalinux 2022.14v2.5
Vivado / Vitis / Petalinux 2021.23.4v2.0
Vivado / Vitis / Petalinux 2021.13.3v1.4
Vivado / Vitis / Petalinux 2020.23.3v1.3
Vivado / Vitis / Petalinux 2020.13.2v1.2
Vivado / Vitis / Petalinux 2019.23.2v1.1
Vivado / Vitis / Petalinux 2019.13.1v1.0
Vivado / Petalinux 2019.13N/A
Vivado / Petalinux 2018.22N/A
Vivado / Petalinux 2018.11First Release

PYNQ for Kria SOMs:

PYNQ for Kria SOMsPYNQ support and examples for Kria SOMs. Contribute to Xilinx/Kria-PYNQ development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/Xilinx/Kria-PYNQ

DPU-PYNQ (v2.5)
This overlay contains a Vitis-AI 2.5.0 Deep Learning Processor Unit (DPU) and comes with a variety of notebook examples with pre-trained ML models.

Supported boards: KV260, KR260, KD240

从官方给的信息可以看出,KV260 PYNQ Installation 使用的是 Vitis-AI 2.5.0,对应的工具版本Vivado / Vitis / Petalinux 2022.1。

2.2 DPU结构

2.3 DPU命名规则

KV260使用DPUCZDX8G IP,表示:

应用领域:CNN

硬件平台:Zynq DDR

量化方法:decent

Decent:一种量化与优化工具,主要用于对神经网络模型进行压缩和量化,以适配于赛灵思的DPU硬件。Decent支持多种量化策略,包括定点量化(通常为INT8量化)。这种工具的目的是通过减小模型的存储与计算需求来优化执行效率,同时尽量保持推理精度。
Integer threshold:一种量化方法,使用整数阈值来确定量化的位宽和位置。
Float threshold:这种方法使用浮点数阈值来进行量化,与整数阈值类似,但使用的是浮点数。
RNN:循环神经网络(Recurrent Neural Network)的缩写,这是一种用于处理序列数据的神经网络结构,通常在量化时需要特别考虑,因为它们的时间依赖性。

量化精度:8 bit

设计目标:通用

3. Vitis AI 配置要点

3.1 配置安装 Docker 库

  1. sudo apt update
  2. sudo apt install ca-certificates curl gnupg
  3. sudo install -m 0755 -d /etc/apt/keyrings
  4. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  5. sudo chmod a+r /etc/apt/keyrings/docker.gpg
  6. echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  7. "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  8. sudo apt update

参考:Install Docker Engine on Ubuntu | Docker Docs

3.2 Install Docker Engine

  1. sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • docker-ce: 这是Docker社区版(Community Edition)的包名。
  • docker-ce-cli: 这是Docker社区版的命令行界面工具的包名,允许用户通过命令行与Docker交互。
  • containerd.io: 这是一个开源容器运行时,Docker用它来管理容器的生命周期。它负责镜像的传输和存储、容器的执行和监控以及任务的分配。
  • docker-buildx-plugin: 这是Docker的一个插件,允许用户通过使用Buildx构建功能,构建多平台镜像、利用缓存等高级构建功能。
  • docker-compose-plugin: 这是Docker Compose的插件,Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过一个YAML文件来配置应用服务,然后使用一个单一的命令,就可以创建并启动所有的服务。

3.3 添加 Docker 用户组并测试

  1. sudo groupadd docker
  2. sudo usermod -aG docker $USER
  3. newgrp docker

运行:docker run hello-world,进行测试,打印 “hello world” 则成功。

3.4 克隆 Vitis AI 库

  1. git clone https://github.com/Xilinx/Vitis-AI/tree/2.5
  2. cd Vitis-AI

3.5 构建 Docker (直接抓取)

  1. docker pull xilinx/vitis-ai-cpu:latest  

3.6 运行 Docker

  1. ./docker_run.sh xilinx/vitis-ai-cpu:latest
ubuntu@ubuntu:$ ./docker_run.sh xilinx/vitis-ai-cpu:latest
Setting up ubuntu's environment in the Docker container...
usermod: no changes
Running as vitis-ai-user with ID 0 and group 0 ==========================================__      ___ _   _                   _____
\ \    / (_) | (_)            /\   |_   _|\ \  / / _| |_ _ ___ ______ /  \    | |\ \/ / | | __| / __|______/ /\ \   | |\  /  | | |_| \__ \     / ____ \ _| |_\/   |_|\__|_|___/    /_/    \_\_____|==========================================Docker Image Version: 2.5.0.1260   (CPU) 
Vitis AI Git Hash: 502703c 
Build Date: 2022-06-12For TensorFlow 1.15 Workflows do:conda activate vitis-ai-tensorflow 
For PyTorch Workflows do:conda activate vitis-ai-pytorch 
For TensorFlow 2.8 Workflows do:conda activate vitis-ai-tensorflow2 
For WeGo Tensorflow 1.15 Workflows do:conda activate vitis-ai-wego-tf1 
For WeGo Tensorflow 2.8 Workflows do:conda activate vitis-ai-wego-tf2 
For WeGo Torch Workflows do:conda activate vitis-ai-wego-torch 
Vitis-AI /workspace > 

出现如上结果,表示启动docker成功,注意版本信息。

3.7 安装 Jupyter Lab

  • jupyter --version # 查看是否安装jupyterlab
jupyter --version
Selected Jupyter core packages...
IPython          : 8.12.2
ipykernel        : 6.23.3
ipywidgets       : 8.0.6
jupyter_client   : 8.3.0
jupyter_core     : 5.3.0
jupyter_server   : 2.6.0
jupyterlab       : not installed
nbclient         : 0.8.0
nbconvert        : 7.6.0
nbformat         : 5.9.0
notebook         : 6.5.4
qtconsole        : 5.4.3
traitlets        : 5.9.0
  1. pip install jupyterlab
  2. jupyter lab # 进入jupyterlab
  3. pip install jupyterlab-language-pack-zh-CN

4. PYNQ for KV260 配置要点

4.1 烧录 Ubuntu 22.04 LTS

烧录 Ubuntu 22.04 LTSicon-default.png?t=N7T8https://www.amd.com/zh-cn/products/system-on-modules/kria/k26/kv260-vision-starter-kit/getting-started-ubuntu/getting-started.html

4.2 配置网络

4.3 关闭图形桌面

  1. xmutil desktop_disable

4.4 添加 AMD 软件源并更新升级 Kernel

  1. sudo add-apt-repository ppa:xilinx-apps
  2. sudo add-apt-repository ppa:ubuntu-xilinx/sdk
  3. sudo apt update
  4. sudo apt upgrade

4.5 配置 Docker (optional)

  1. sudo groupadd docker
  2. sudo usermod -a -G docker  $USER
  3. newgrp docker

4.6 安装 xrt zocl driver (optional)

  1. sudo apt install xrt-dkms

4.7 安装 Pynq (需配置代理)

  1. git clone https://github.com/Xilinx/Kria-PYNQ.git
  2. cd Kria-PYNQ
  3. 需要修改install.sh文件
  4. sudo bash install.sh -b KV260

4.8 Jupyter Lab 安装中文支持包

  1. pip install jupyterlab-language-pack-zh-CN

4.9 域名解析

  1. C:\Windows\System32\drivers\etc\hosts
  2. 添加:192.168.101.224 kria

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/1037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 潮流周刊#47:当你的老师希望你去做开源

本周刊由 Python猫 出品,精心筛选国内外的 250 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 以下是周刊全文&#x…

OpenHarmony 网络与连接—RPC连接

介绍 本示例使用ohos.rpc 相关接口,实现了一个前台选择商品和数目,后台计算总价的功能,使用rpc进行前台和后台的通信。 效果预览 使用说明: 点击商品种类的空白方框,弹出商品选择列表,选择点击对应的商品…

语音转换中的扩散模型——DDDM-VC

DDDM-VC: Decoupled Denoising Diffusion Models with Disentangled Representation and Prior Mixup for Verifed Robust Voice Conversion https://ojs.aaai.org/index.php/AAAI/article/view/29740https://ojs.aaai.org/index.php/AAAI/article/view/29740 1.概述 首先,语…

Python 中整洁的并行输出

原文:https://bernsteinbear.com/blog/python-parallel-output/ 代码:https://gist.github.com/tekknolagi/4bee494a6e4483e4d849559ba53d067b Python 并行输出 使用进程和锁并行输出多个任务的状态。 注:以下代码在linux下可用&#xff0c…

win10 系统怎么开启 guest 账户?

win10 系统怎么开启 guest 账户? 段子手168 前言: guest 账户即所谓的来宾账户,我们可以通过该账户访问计算机,如打印机共享等,但会在一定程度上受到限制。下面分享 WIN10 系统开启 guest 来宾账户的几种方法。 方法…

详解Qt中的时间——QDateTime、QDate、QTime、QTimeZone

在软件开发中,准确、高效地处理时间信息是许多应用程序的核心需求。Qt框架作为一个功能强大的跨平台应用开发工具包,为开发者提供了丰富的类和函数来处理各种时间相关的任务。本文将深入探讨Qt中关于时间管理的关键类和方法,并通过详细的C代码…

面试题:Kafka中Controller的作用是什么?选举流程是怎样的?以及如何避免脑裂问题?

题目来源 网上冲浪:还不懂分布系统,速看深度剖析Kafka Controller选举过程 在查找关于Kafka单机分区的上限以及分区多了会有怎样的问题的时候,发现了这个比较有趣的问题,就记录了下来。 一般所有的分布式系统,都会涉及…

设备连接IoT云平台指南

一、简介 设备与IoT云间的通讯协议包含了MQTT,LwM2M/CoAP,HTTP/HTTP2,Modbus,OPC-UA,OPC-DA。而我们设备端与云端通讯主要用的协议是MQTT。那么设备端与IoT云间是如何创建通信的呢?以连接华为云IoT平台为例…

SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出

目录 介绍 快速开始 引入依赖 简单导出 定义实体类 自定义转换器 定义接口 测试接口 复杂导出 自定义注解 定义实体类 数据映射与平铺 自定义单元格合并策略 定义接口 测试接口 一对多导出 自定义单元格合并策略 测试数据 简单导入 定义接口 测试接口 参…

供应链系统搭建|主流电商平台商品采集|一键搬家|订单物流回传API接口

搭建供应链系统时,您可能需要与电商平台进行集成,以实现订单管理、库存同步、物流跟踪等功能。以下是一些常见的电商接口,可以帮助您构建供应链系统: 1. **淘宝开放平台接口**:淘宝开放平台提供了丰富的接口&#xff…

ssh-key关于authorized_keys电脑与linux互相认证

思路: 在A上生成公钥私钥。将公钥拷贝给server B,要重命名成authorized_keys(从英文名就知道含义了)Server A向Server B发送一个连接请求。Server B得到Server A的信息后,在authorized_key中查找,如果有相应的用户名和IP&#xf…

ubuntu 查询mysql的用户名和密码 ubuntu查看username

ubuntu 查询mysql的用户名和密码 ubuntu查看username 文章标签mysqlUbuntu用户名文章分类MySQL数据库 一.基本命令 1.查看Ubuntu版本 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.5 LTS Release: 16.04 Coden…

oepncv android 使用笔记

目录 cmakelist配置: 读取图片例子 需要下载: OpenCV-android-sdk cmakelist配置: set(OpenCV_DIR D:/GZ/soft/rknn-toolkit2/rknn-toolkit2-master/rknpu2/examples/3rdparty/opencv/OpenCV-android-sdk/sdk/native/jni/abi-${CMAKE_AND…

Java数据结构-堆和优先级队列

目录 1. 相关概念2. PriorityQueue的实现2.0 搭建整体框架2.1 堆的创建和调整2.2 插入元素2.3 出堆顶元素 3. 全部代码(包含大根堆和小根堆)4. PriorityQueue的使用5. Top-K问题 之前我们学习的二叉树的存储方式是链式存储,(不清楚…

java的各种锁

我们先来看看有什么锁 一、java锁 1、乐观锁 乐观锁 是一种乐观思想 ,假定当前环境是读多写少,遇到并发写的概率比较低,读数 据时认为别的线程不会正在进行修改(所以没有上锁)。写数据时,判断当前 与期望…

C语言经典例题-20

1.判断字母 题目描述 从键盘任意输入一个字符,编程判断是否是字母(包括大小写)。 输入描述: 多组输入,每行输入包括一个字符。 输出描述: 针对每行输入,输出该字符是字母(YES)或不是&#xf…

使用Python实现超参数调优

超参数调优是机器学习模型调优过程中的重要步骤,它可以帮助我们找到最佳的超参数组合,从而提高模型的性能和泛化能力。在本文中,我们将介绍超参数调优的基本原理和常见的调优方法,并使用Python来实现这些方法。 什么是超参数&…

算法打卡day48|动态规划篇16| Leetcode 583. 两个字符串的删除操作、72. 编辑距离

算法题 Leetcode 583. 两个字符串的删除操作 题目链接:583. 两个字符串的删除操作 大佬视频讲解:583. 两个字符串的删除操作视频讲解 个人思路 本题和115.不同的子序列相比,变为了两个字符串都可以删除,整体思路是不变的,依旧…

vue3中web前端JS动画案例(二)多物体运动-多值运动

<script setup> import { ref, onMounted, watch } from vue // ----------------------- 01 js 动画介绍--------------------- // 1、匀速运动 // 2、缓动运动&#xff08;常见&#xff09; // 3、透明度运动 // 4、多物体运动 // 5、多值动画// 6、自己的动画框架 // …

在PostgreSQL中如何实现递归查询,例如使用WITH RECURSIVE构建层次结构数据?

文章目录 解决方案使用WITH RECURSIVE进行递归查询示例代码 总结 在PostgreSQL中&#xff0c;递归查询是一种非常强大的工具&#xff0c;它可以用来查询具有层次结构或树形结构的数据。例如&#xff0c;你可能会在员工-经理关系、目录结构或组织结构图中遇到这样的数据。为了处…