1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. Vitis™ AI ver2.0がリリース!新たな機能などを紹介!

TECHブログ

Vitis™ AI ver2.0がリリース!新たな機能などを紹介!

Vitis™ AI ver2.0がリリース!新たな機能などを紹介!

皆さまこんにちは!TEPPE-AIです!

今回の記事は、検証ではなくVitis™ AI ver2.0に関する紹介です!
ver2.0が2022/1/20にリリースされました。前回のver1.4リリースから約半年ほどの期間が空いていますので、ようやくリリースされた待望のアップデートです!
(ver1.4.1はマイナーアップデートなので今回は考慮せず)

※Vitis™ AI Update履歴
ver1.4:2021/7/27
ver1.4.1:2021/10/27
ver2.0:2022/1/20


新機能含め大きくパワーアップしていますので、自分視点で気になった箇所や、新機能を紹介できればと思います。

この記事の最後に、次回の記事についても記載していますので、是非最後まで見ていってくださいね!

それでは参りましょう!

目次

Vitis™ AI ver2.0

2022年1月20日に、Vitis™ AI ver2.0がリリースされました。
※Release Notesについては、 こちら からご参照ください


冒頭で述べた通り、今回は大きなアップデートとなり、全てを紹介するとかなりのボリュームになるため、以下3点に絞って紹介します。

  • ・対応フレームワーク及びAI Model Zooボリュームアップ!
  • ・新機能「WeGo」
  • ・「GraphRunner」を用いたカスタムレイヤー実装方法

対応フレーム及びAI Model Zooボリュームアップ!

ver2.0になったことで、フレームワークやAI Model Zooもグレードアップしました。

Vitis™ AI対応フレームワークとして、「TensorFlow(v1, v2)」「PyTorch」「Caffe」があります。
その中でも「TensorFlow-v2」「PyTorch」がアップデートされ、対応バージョンが拡張されました !

Vitis™ AI ver 1.4 ver 2.0
TensorFlow-v2 2.3 2.3~2.6
PyTorch 1.1~1.7.1 1.1~1.9

上記表の通り、各々上位Verを含め幅広くサポートしており、開発の敷居がさらに下がった印象を受けました。
個人的には、幅広くサポートしている点がとてもありがたいなと思います。

フレームワークに併せて、AI Model Zooのバリエーションも増えました。
AI Model Zooとは、ザイリンクスが提供している量子化/最適化を施したAIモデルになります。
再学習なモデルも含まれており、ライセンスもApache License ver2.0に対応しています。
使用条件については、Vitis™ AI GitHubの License をご確認ください。

以下、Release Notesの抜粋になります


モデル数ももちろんですが、黄色ハイライトにもある通り、分野ごとに様々なAIモデルが採用されている点もバリエーション豊富でいいですよね~

アンカーフリーのYOLOシリーズであるYOLO-Xや、MOTの「FairMOT」など、いろいろと試してみたいモデルが多く魅力的ですが、中でも気になるのが、「OFA models」です。

OFAとは、「Once For All」と呼ばれる、モデルの軽量化を行う手法のことで、とても興味関心がわく技術になっています。

Release Notesの通り、AI Optimizerにも適用されたようです。 ※現時点でPyTorchのみ対応


AI Optimizerは有償となるため、試してみるには敷居が高いです。。
ですが、なんとAI Model Zoo内にOFAが適用されたAIモデルがあり、それが先述した「OFA Models」になります!
※黄色でハイライトした箇所が該当箇所です

※画像クリックで大きな画像が表示されます。

AI Model Zooにあるとなれば、使用するAIモデルのアーキテクチャは限られるものの、無償で性能を試せるので、これはかなり嬉しい対応ですね。
例えば、resnet50については、非OFA verもAI Model Zooにあるので、OFAの有無でどの程度差分があるのか、今後見てみようかなと思います!


新機能「WeGo」

Ver2.0リリースに伴い、新たに追加された機能がWeGo(whole Graph Optimizer)です。

なんと、対応フレームワークで記述された推論コードをそのまま評価ボード上で用いて実行できるとのことです!
現状、評価ボードはVersal、フレームワークはTensorFlow-v1のみとなっていますが、今後の拡張に期待です!

FPGAへのAI実装となると、専用APIを用いて推論コードを作成しなければいけなかったのですが
例えば、PCの検証で用いた推論コードをそのままFPGAで用いることができるので、かなりの工数削減が見込めますね。


「GraphRunner」を用いたカスタムレイヤー実装方法

最後に1つ、個人的にはとても嬉しいアップデートであるカスタムレイヤー実装方法です。

「GraphRunner」は、分割されたDPUサブグラフをCPU OP含め一括化し、複雑なAIモデルのFPGAへの実装を容易にさせる手法です。
こちらはver1.4にて新機能としてリリースされていました。


カスタムレイヤー実装について、量子化までを行う サンプル は存在していたのですが、 その先のデバイス実装まではなく、苦戦していた最中でした。


実装方法として、ユーザーガイドによると、以下の工程で実装できるとのことです。

  • ① 学習済みAIモデル量子化(FP32 → INT8) ←カスタムレイヤー定義
  • ② 量子化済みAIモデルコンパイル
  • ③ カスタムレイヤーコンパイル
  • ④ 「GraphRunner」を用いて実装


対応フレームワークとしては、「TensorFlow-v2」「PyTorch」です。
③、④が当方未知の領域です。
サンプルも存在しているので、ユーザーガイドと併せて作業を進めていき技術習得を試みたいと思います。

ネタバレになってしまいますが、次回の記事ではこのカスタムレイヤー実装方法について、サンプルを参考にしながら、実際にSo-Oneで実行するまでの検証を紹介したいと考えています。

最後に

最後までお読みいただきありがとうございました~

今回はVitis™ AI ver2.0のアップデート情報をお伝えしました。
紹介した内容以外にも様々なアップデート情報があるので、是非皆さまでも見てみてください!

次回は、先ほどの通りカスタムレイヤーを含むAIモデルの実装方法を、サンプルをもとに So-One上で実行するまでの検証を紹介できればと思います!

それではまた!TEPPE-AIでした~

このブログのシリーズ