Vitis AI 集成
Vitis AI 是用在 Xilinx 平台(包括边缘设备和 Alveo 卡)上进行硬件加速 AI 推理的 Xilinx 开发堆栈。它由优化的 IP、工具、库、模型和示例设计组成。在设计时兼顾高效 率和易用性,充分发挥了 Xilinx FPGA 和 ACAP 上 AI 加速的潜力。
TVM 中当前的 Vitis AI 流支持使用 Zynq Ultrascale+ MPSoc, Alveo 和 Versal 平台在边缘和云端加速神经网络模型推理。支持的边缘和云深度学习处理器单元(DPU)的标识符是:
Target Board | DPU ID | TVM Target ID |
---|---|---|
ZCU104 | DPUCZDX8G | DPUCZDX8G-zcu104 |
ZCU102 | DPUCZDX8G | DPUCZDX8G-zcu102 |
Kria KV260 | DPUCZDX8G | DPUCZDX8G-kv260 |
VCK190 | DPUCVDX8G | DPUCVDX8G |
VCK5000 | DPUCVDX8H | DPUCVDX8H |
U200 | DPUCADF8H | DPUCADF8H |
U250 | DPUCADF8H | DPUCADF8H |
U50 | DPUCAHX8H / DPUCAHX8L | DPUCAHX8H-u50 / DPUCAHX8L |
U280 | DPUCAHX8H / DPUCAHX8L | DPUCAHX8H-u280 / DPUCAHX8L |
有关 DPU 标识符的更多信息,参见下表:
DPU | Application | HW Platform | Quantization Method | Quantization Bitwidth | Design Target |
---|---|---|---|---|---|
Deep LearningProcessing Unit | C: CNNR: RNN | AD: Alveo DDRAH: Alveo HBMVD: Versal DDR with AIE & PLZD: Zynq DDR | X: DECENTI: Integer thresholdF: Float thresholdR: RNN | 4: 4-bit8: 8-bit16: 16-bitM: Mixed Precision | G: General purposeH: High throughputL: Low latencyC: Cost optimized |
此教程介绍有关如何在不同平台(Zynq、Alveo、Versal)上使用 Vitis AI 设置 TVM 以及如何开始 编译模型 并在不同平台上执行:推理。
系统要求
Vitis AI 系统要求页面 列出了运行 Docker 容器以及在 Alveo 卡上执行的系统要求。对于边缘设备(例如 Zynq),部署模型需要使用带有 Vitis AI 流程的 TVM 编译模型的主机,以及用于运行编译模型的边缘设备。主机系统要求与上面链接中指定的相同。
设置说明
本节介绍如何用 Vitis AI 流为云和边缘设置 TVM。支持 Vitis AI 的 TVM 是通过 Docker 容器提供的。提供的脚本和 Dockerfile 将 TVM 和 Vitis AI 编译为单个镜像。
-
克隆 TVM 仓库
git clone --recursive https://github.com/apache/tvm.git
cd tvm -
构建并启动 TVM - Vitis AI Docker 容器。
./docker/build.sh demo_vitis_ai bash
./docker/bash.sh tvm.demo_vitis_ai
# Setup inside container
conda activate vitis-ai-tensorflow -
用 Vitis AI(在 TVM 目录内)在容器内构建 TVM
mkdir build
cp cmake/config.cmake build
cd build
echo set(USE_LLVM ON) >> config.cmake
echo set(USE_VITIS_AI ON) >> config.cmake
cmake ..
make -j$(nproc) -
安装 TVM
cd ../python
pip3 install -e . --user
在这个 Docker 容器中可以为云和边缘目标编译模型。要在 docker 容器内的云 Alveo 或 Versal VCK5000 卡上运行,按照 Alveo 或者 Versal VCK5000 设置说明进行操作。分别参照 Zynq 和 Versal VCK190,为推理过程设置 Zynq 或 Versal VCK190 评估单板。