落ち着いてVitisAIを眺めてみる

VitisAIは次のURLからダウンロードできる。

https://github.com/Xilinx/Vitis-AI.git

バージョン

本日の時点でバージョンは周辺のアプリケーションも含めて次のとおりである。

  • VitisAI v1.3
  • Vivado/Vitis/PetaLinux 2020.2
  • Ubuntu 20.04.1LTS
  • Python 3.9
  • PyTorch 10.2(or 11.0)
  • CUDA 11.2
  • cuDNN 8.1

VitisAIの最新バージョンを使用するならgithubのmasterかv1.3のブランチを使うのが良いだろう。

ドキュメント

User GuideはUG1414でバージョンはv1.3、URLはつぎのところである。

https://www.xilinx.com/support/documentation/sw_manuals/vitis_ai/1_3/ug1414-vitis-ai.pdf

Webでもドキュメントを見ることがき、つぎのURLである。

https://www.xilinx.com/html_docs/vitis_ai/1_3/

Getting StartをするならgithubのREADME.txtを見るのが一番い良い。

現時点ではWebで検索するとv1.2のドキュメントによく遭遇するので注意しておくとよいだろう。

Getting Start

基本的にVitisAIはdocker環境で提供されている。

docker次隊のインストール方法もドキュメントに記載されているのでさそれを参照してインストールを進めれば良い。

そして、docker環境はつぎの2つがある。

  • CPU環境
  • GPU環境

環境に合わせて使用すれば良い。

ただし、GPU環境ではnVIDIAのdocker環境も必要になる。

Get Started with Examples

Exampleとしてつぎの4つの大項目がある。

  • VART
  • Vitis AI Library
  • Exmaples
  • Vitis AI DNNDK samples

VART

VARTはVitis AI Runtimeの略である。

VARTはつぎのRunTime APIを使用できる。

  • Jobの非同期送信
  • Jobの非同期コレクション
  • C++ と Python
  • マルチスレッドとマルチプロセス

XRT(Xilinx Runtime Library)とは違うものなので注意が必要である。

Vitis AI Library

Vitis AI LibraryはDPU(Deep-Learning Processor Unit)を使用した推論用に構築されたライブラリとAPIのセットである。

各フレームワークでサポートしているライブラリはつぎのとおりである。

caffe

  • Classification
  • Face detection
  • SSD detection
  • Pose detection
  • Semantic segmentation
  • Road line detection
  • YOLOV3 detection
  • YOLOV2 detection
  • Openpose detection
  • RefineDet detection
  • ReID detection
  • Multitask
  • Face recognition
  • Plate detection
  • Plate recognition
  • Medical segmentation

TensorFlow

  • Classification
  • SSD detection
  • YOLOv3 detection
  • Medical detection

PyTorch

  • Classification
  • ReID detection
  • Face recognition
  • Semantic segmentation
  • Point cloud
  • Medical segmentation
  • 3D segmentation

Vitis AI DNNDK

DNNDKはDeep Neural Network Development Kitの略である。

VGG、ResNet、GoogleNet、YOLO、SSD、MobileNet、FPNなどのCNNをサポートしている。

DNNDKはDPUCZDX8Gを実行するための環境が提供されてる。

本日のまとめ

なぁ〜んとなく、Vitis AIの構造というかgithubの中身の構成が分かってきた。

Quantizer(量子化)がライブラリだと思っていたのでVitis AI Libraryに属しているんだろうと思い込んでVitis AIの構造を理解しようとしてたから訳がわからなくなってしまってた。

toolsのディレクトリを確認するとつぎのようになっており、Quantizerはライブラリとは分けられていることがわかる。

$ ls tools/
AKS  RNN  Vitis-AI-Library  Vitis-AI-Profiler  Vitis-AI-Quantizer  Vitis-AI-Runtime

つまり、Vitis AIで構造を紹介している下図のとおり、QuantizerとLibraryは違うものと思えば良かったんだ。

ざっと、自分の中で整理できたところで、自分自身が欲しいものを考えるとこの図からはCompiler、Quantizer、Optimizer、Profilerとなる。

つまり、Vitis AI LibraryとDNNDKは必要ないということで良いだろう。

write: 2021/01/28/ 23:30:00