Vitis AI RunnTime(VART) 安装脚本分析

https://github.com/Xilinx/Vitis-AI/blob/v2.5/setup/mpsoc/target_vart_setup.sh

# Copyright 2021 Xilinx Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#!/bin/bash

#wget https://www.xilinx.com/bin/public/openDownload?filename=vitis-ai-runtime-2.5.0.tar.gz -O vitis-ai-runtime-2.5.0.tar.gz
#cd vitis-ai-runtime-2.5.0/2022.1/aarch64/centos

cd 2022.1
rpm -ivh --force libunilog-2.5.*-r*.aarch64.rpm
rpm -ivh --force libxir-2.5.*-r*.aarch64.rpm
rpm -ivh --force libtarget-factory-2.5.*-r*.aarch64.rpm
rpm -ivh --force libvart-2.5.*-r*.aarch64.rpm
rpm -ivh --force libvitis_ai_library-2.5.*-r*.aarch64.rpm

echo "Complete VART packages installation"

执行环境:边缘设备

这个脚本是在边缘设备(目标硬件)上执行的,而不是在PC上。从脚本中使用的RPM包文件名可以看出,它们都是针对aarch64架构的,这是ARM 64位架构的标识,通常用于边缘计算设备,如Xilinx Zynq UltraScale+ MPSoC开发板。

脚本功能概述

该脚本用于在边缘设备上安装Vitis AI运行时环境(VART)及其依赖库。这些库使边缘设备能够运行使用Vitis AI开发和优化的深度学习应用程序,充分利用Xilinx硬件加速器(如DPU)的性能。

脚本执行的主要步骤

1. 切换目录

cd 2022.1

脚本首先切换到2022.1目录,这个目录包含了Vitis AI 2.5.0版本的运行时库RPM包。值得注意的是,脚本中注释掉的下载命令表明这些包可能已经预先下载并解压到本地。

2. 安装Vitis AI运行时组件

rpm -ivh --force libunilog-2.5.*-r*.aarch64.rpm
rpm -ivh --force libxir-2.5.*-r*.aarch64.rpm
rpm -ivh --force libtarget-factory-2.5.*-r*.aarch64.rpm
rpm -ivh --force libvart-2.5.*-r*.aarch64.rpm
rpm -ivh --force libvitis_ai_library-2.5.*-r*.aarch64.rpm

这些命令使用RPM包管理器安装Vitis AI运行时所需的库,其中:

  • rpm: Red Hat Package Manager,用于管理软件包
  • -i: 安装软件包
  • -v: 显示详细信息
  • -h: 以易读的方式显示安装进度
  • --force: 强制安装,即使有可能的冲突或依赖问题

这些库按特定顺序安装,以满足依赖关系:

  1. libunilog: 统一日志库,提供日志记录功能,便于调试和监控
  2. libxir: Xilinx中间表示(XIR)库,用于标准化地描述和操作神经网络模型
  3. libtarget-factory: 目标设备工厂库,管理不同硬件目标的接口和信息
  4. libvart: Vitis AI运行时核心库,提供推理执行环境,支持DPU执行AI推理
  5. libvitis_ai_library: 高层次AI库,提供预处理、后处理等功能,简化应用开发

3. 完成安装提示

echo "Complete VART packages installation"

脚本最后输出一条消息,表示Vitis AI运行时包安装完成。

与之前脚本的关系

这个脚本与您之前提到的脚本形成了完整的Vitis AI开发和部署工作流:

  1. 第一个脚本(在PC上执行):

    • 安装交叉编译环境和Vitis AI开发工具
    • 下载SDK和Vitis AI工具包
    • 配置PetaLinux SDK
    • 集成Vitis AI到交叉编译环境
    • 使开发者能在PC上为边缘设备编译应用
  2. 第二个脚本(当前脚本,在边缘设备上执行):

    • 安装Vitis AI运行时库及其依赖
    • 配置边缘设备以运行AI应用
    • 使边缘设备能够执行在PC上开发的AI应用

这种分离的方式允许开发者在性能更强的PC上进行开发,同时确保应用能在资源受限的边缘设备上高效运行。

Vitis AI运行时架构

Vitis AI运行时(VART)是一个分层架构:

  1. 应用层: 用户应用程序和Vitis AI库(libvitis_ai_library)
  2. 运行时层: VART核心库(libvart),提供统一的API
  3. 中间表示层: XIR(libxir),标准化表示神经网络
  4. 目标层: 目标工厂(libtarget-factory),抽象不同硬件后端
  5. 硬件层: 实际的物理硬件(FPGA、SoC等)

这种分层设计使得同一个AI应用可以在不同的Xilinx硬件平台上运行,而无需修改应用代码。

应用场景

这个脚本适用于以下场景:

  1. 边缘AI部署

    • 在Xilinx FPGA/SoC开发板上部署深度学习应用
    • 配置边缘设备以运行使用DPU加速的AI推理
  2. 嵌入式视觉系统

    • 为智能相机、监控系统等配置运行环境
    • 使这些系统能够运行计算机视觉算法
  3. 原型验证

    • 在实际硬件上验证在开发环境中创建的AI应用
    • 测试优化后的模型在实际硬件上的性能

总结

这个脚本是Vitis AI应用部署流程的重要组成部分,它在边缘设备上安装必要的运行时环境,使设备能够执行使用Vitis AI开发的应用。它与在PC上执行的开发环境设置脚本一起,构成了完整的开发-部署工作流:

  1. 在PC上开发编译应用
  2. 将编译好的应用部署到边缘设备
  3. 边缘设备上的Vitis AI运行时环境执行应用

通过这种方式,开发者可以充分利用PC的强大计算能力进行开发,同时确保应用能在边缘设备上高效运行,实现高性能的边缘AI计算。

在这里插入图片描述

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐