potblog

技術メモとかガジェットレビューとか

Ultra96 v2向けVitis AIのチューニング方針について

某エッジコンテストへの参加を検討してます。

FPGA向けの推論AIであるvitis AIのチューニングを行うのですが、よく分かっていないので、 どこをチューニングするべきかの方針をまとめてみました。

@startuml
left to right direction
[vivado] --> fpga_base_platform
note left of vivado : to tune fpga project
fpga_base_platform --> vitis_platform
[Petalinux] --> fpga_linux
fpga_linux --> vitis_platform
note left of Petalinux : to tune target linux
[vitis] --> vitis_platform
note left of vitis : to tune hardware IP(DPU)

image_data -->[vitis_AI]
network_model --> [vitis_AI]
note left of network_model : to tune model.
[vitis_AI] --> model
note left of model : .elf file

vitis_platform --> [SD card]
model --> [SD card]
@enduml

開発の流れとしては大まかには以下のとおりです

  1. モデルの学習を完了させる
    vitis AIにおけるセグメンテーションのサンプルについて
    GitHub - Xilinx/Vitis-AI: Vitis AI is Xilinx’s development stack for AI inference on Xilinx hardware platforms, including both edge devices and Alveo cards.

  2. FPGA向けの設計を行う
    vivado、petalinux、vitisを一括インストールしてvitis_plattoformを生成するスクリプトと、vitis aiのUltra96 v2向け設定について
    Ultra96V2向けVitis AI(2019.2)の組み立て方。 - Qiita
    vivado、petalinux、vitisの解説と設定について
    Ultra96用Vitisプラットフォームの作り方(BASE編) - Qiita