Vitis AIの使い方。個人的まとめ記事

本サイトはアフィリエイト広告を利用しています。
AI

Vitis AIの使い方のまとめ記事です。

バージョンでかなり使い勝手が異なるので、注意が必要です。

個人的にVitis AIで環境構築・テストした内容を紹介します。

 

スポンサーリンク

Vitis AIの使い方。個人的まとめ記事

Vitis AIの使い方の個人的まとめ記事です。

各Ver事にインストールから、環境構築・テストした内容を紹介します。

バージョンでかなり使い勝手が異なるので、注意が必要です。

 

あくまで筆者が趣味で実施・テストしている内容です。参考までにお願いします。

基本は公式のGitHub・ドキュメントを確認お願いします。

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

 https://docs.xilinx.com/r/en-US/ug1414-vitis-ai/Vitis-AI-Overview

 

Vitis AI 3.5のまとめ

Vitis AI 3.5で環境構築・テストした内容です。

 

PyTorchのCPUとGPUのdocker環境

Ubuntu 20.04の環境でVitis AI 3.0をインストールしました。

※追記_Vitis AI 3.5でも同様にインストールできることを確認しています

PyTorch版のCPUとGPUの両方のdocker環境を整えています。

※Ver 3.0から各フレームワーク(TensorFlow2,PyTorch)でdocker環境が分かれています。

 

Vitis AI 3.0でPyTorchのCPUとGPUの環境を構築したメモ

Vitis AI 3.0でPyTorchのCPUとGPUの環境を構築したメモ
Ubuntu 20.04の環境でVitis AI 3.0をインストールしました。 ※追記_Vitis AI 3.5でも同様にインストールできることを確認しています PyTorch版のCPUとGPUの両方のdocker環境を整えています。 d...

 

KV260+YOLOX

KV260の評価ボードでYOLOXを動かしてみたブログ記事です。

Vitis AIのサンプルをそのまま使用して、テストしています。

Vitis AI 3.5とKV260でYOLOXを動かしたメモ

Vitis AI 3.5とKV260でYOLOXを動かしたメモ
Vitis AI 3.5とKV260でYOLOXを動かしてみました。 AMD(Xilinx)のサンプルで公開されているモデルを動かしたメモです。 SDカードの作り方からruntimeのインストール含めて紹介します。 Vitis AI 3.5...

 

Vitis AI 2.5のまとめ

Vitis AI 2.5で環境構築・テストした内容です。

 

CPUのdocker環境

Vitis AI 2.5のCPU版をインストールした記事です。

VItis AI 2.5やPetaLinuxなどインストールしてみたメモ

VItis AI 2.5やPetaLinuxなどインストールしてみたメモ
Vitis AIの最新版2.5やPetaLinuxインストールしてみました。 ダウンロードからの一連の流れを簡単に紹介します。

 

GPUのdocker環境

Vitis AI 2.5のGPU版にはメモリが32GB必要で、仮想メモリで対応した記事です。

Vitis AIでdocker_build_gpu.shが失敗するメモ

Vitis AIでdocker_build_gpu.shが失敗するメモ
VItis AIでGPU版のDockerをビルドすると失敗しました。 エラーの症状とメッセージ、ログをメモしておきます。 また原因を調べてみました。

 

Vitis-AI 2.5のGPU版の環境構築をしたブログ記事です。

Vitis AI GPU dockerの環境構築をしたメモ

Vitis AI GPU dockerの環境構築をしたメモ
XilinxのFPGAのAI開発環境である、Vitis-AI 2.5のGPU版を立ち上げてみました。 dockerやCUDAなど多くのものを事前にインストールする必要があります。 実際にGPU dockerの環境構築をした手順を紹介します。

 

PyTorchでの量子化(vai_q_pytorch)

Vitis AIから紹介されている量子化(vai_q_pytorch)のインストール方法の記事です。

※NVCCを使う際にはvai_q_pytorchを入れ直す必要がありました。

但し、後述するConda環境を再構築する手段の方が良く使っています。

Vitis AIでvai_q_pytorchをインストールしてみたメモ

Vitis AIでvai_q_pytorchをインストールしてみたメモ
Vitis AI でPytorchの量子化(vai_q_pytorch)する場面があります。 Ver2.5でnvccの並列計算を使うには、環境のセットアップが必要です。 vai_q_pytorchをインストールする方法を紹介します。

 

量子化(vai_q_pytorch)する上でのConda環境を新しく構築したブログ記事です。

Vitis AIでPytorchのConda環境を新しく構築してみた

Vitis AIでPytorchのConda環境を新しく構築してみた
Vitis AIでPytorchのConda環境を立ち上げてみました。 量子化(vai_q_pytorch)する上でgpuとnvccを使うには、環境のセットアップが必要です。 FPGAに向けてPytorchのモデルを量子化する内容を紹介します。

 

Vitis AIのサンプルには無いライブラリの量子化にトライしたブログ記事です。

ただし、結果は失敗です。サンプル外の量子化は本当に難しかったです。

Vitis-AI Quantizer(量子化)の3D物体検出に失敗したメモ

Vitis-AI Quantizer(量子化)の3D物体検出に失敗したメモ
Vitis-AIのサンプル・ライブラリにないFPGAの量子化(Quantizer)を試してみました。 ただ3D物体検出(pointpainting)の対応はとても難しく失敗に終わりました。 忘備録として一連の流れを紹介します。

 

Vitis AIのPyTorchのコンパイル

Vitis AIのPyTorchコンパイルの練習をしたブログ記事です。

YOLOXとPointPillarsのモデルでテストしています。

Vitis AIでPytorchのcompileをしてみたメモ

Vitis AIでPytorchのcompileをしてみたメモ
Vitis AIのPytorchのモデル(.xmodel)をコンパイルしてみました。 練習を兼ねて、複数の物体検出(YOLOX、PointPillars)のモデルでテストしています。

 

PyTorch + YOLOX のサンプル

KV260の評価ボードで実際にYOLOXを動かしてみたブログ記事です。

Vitis AIのサンプルをそのまま使用して、テストしています。

KV260でYOLOX+DPUの物体検出をしてみたメモ

KV260でYOLOX+DPUの物体検出をしてみたメモ
FPGAでYOLOXの物体検出をしてみました。 使用したFPGAの評価ボードはKV260です。 Vitis AIのサンプルを使って簡単にテストした内容を紹介します。

 

PyTorch + PointPillars(KITTI)のサンプル

Vitis AIのサンプルライブラリのKITTI形式のPointPillarsを調べたブログ記事です。

KITTIとPointPillarsのVitis AIのサンプルを調べたメモ

KITTIとPointPillarsのVitis AIのサンプルを調べたメモ
Vitis AIでKITTIとPointPillarsの機械学習を試してみました。 データセットの用意からFPGAへの量子化までの動作確認をしています。 その際にエラー出た内容含めて紹介します。 KITTIとPointPillarsをVit...

 

KV260の評価ボードでKITTI形式のPointPillarsを動かしてみたブログ記事です。

Vitis AIのサンプルライブラリをそのまま使用して、テストしています。

KITTI形式の3D物体検出をKV260(FPGA)で試したメモ

KITTI形式の3D物体検出をKV260(FPGA)で試したメモ
KITTIの3D物体検出(PointPillars)をFPGAでテストしてみました。 使用した評価ボードはKV260です。 Vitis AIのライブラリを使って、簡単にテストしてみた内容を紹介します。

 

PyTorch + PointPillars(nuScenes)のサンプル

Vitis AI上でnuScenes(mini)のデータセットの入手~評価までしたブログ記事です。

nuScenesの本番環境は数百GB近いので、まずはminiで練習しました。

nuScenes miniのdatasetを試してみる

nuScenes miniのdatasetを試してみる
nuScenesのデータセットは数百Gbyteと莫大です。 nuScenes miniならば数Gbyteのため、テストレベルなら簡単に使えます。 ダウンロードして、Vitis AI環境下で簡単に評価まで実施してみました。

 

Vitis AIで自動車のLIDAR点群データを使った3D物体検出の学習を試したブログ記事です。

LIDAR点群の3D物体検出の学習に失敗したメモ

LIDAR点群の3D物体検出の学習に失敗したメモ
自動車のLIDAR点群データを使った3D物体検出の学習を試してみました。 ただ、Xilinxからサンプルで提供されている学習済のモデル(重み)には勝てず…。 色々と試して失敗した内容含めて紹介します。 LIDAR点群の3D物体検出の学習に失...

 

量子化でPointPillarsのxmodelを出力したブログ記事です

量子化のFast Finetuningをメモリ不足で諦めたメモ

量子化のFast Finetuningをメモリ不足で諦めたメモ
Vitis AIのFPGA向けの量子化で精度ロスを防ぐFast Finetuningという機能があります。 但しPCのメモリが有る程度必要でした。(今回だと28GB程度) 低スペックPCには難しく、普通の量子化をした旨を紹介します。

 

KV260でnuScenes形式のデータセットで3D物体検出したブログ記事です。

nuScenes形式の3D物体検出をKV260(FPGA)で試したメモ

nuScenes形式の3D物体検出をKV260(FPGA)で試したメモ
nuScenes形式の3D物体検出(PointPillars)をFPGAでテストしてみました。 使用した評価ボードはKV260です。 第6回AIエッジコンテストのデータセットでも確認しています。

 

PyTorch + PointPainting(nuScenes)のサンプル

PointPainting(3D物体検出)の処理の一部でテストした内容です。

分類(segmentation)で、Vitis AIのCPUとGPU版の両方でテストしています。

機械学習でCPUとGPUを比較!サポートと処理速度を比べてみた

機械学習でCPUとGPUを比較!サポートと処理速度を比べてみた
簡単な機械学習をして、CPUとGPUの差を比較してみました。 CPUをサポートされているものも多数ありますが、やはりGPUの方が圧倒的に楽です。 処理速度もですが、サポートの差がCPUとGPUで違う一例を紹介します。

 

Vitis AI 2.0 のまとめ

Vitis AI 2.0で環境構築・テストした内容です。

 

Ultra96-v2+Avnetのプラットフォームでのサンプル

Ultra96-V2でVitis-AI 2.0のサンプルデモを動かしたブログ記事です。

Aventが提供しているプラットフォーム使えばデモ程度は簡単に動作できます。

Ultra96-V2とVitis-AIをAventのplatformsで動かすメモ

Ultra96-V2とVitis-AIをAventのplatformsで動かすメモ
Ultra96-V2でVitis-AI 2.0を動かしてみました。 Aventが提供しているimgファイルを使えばデモ程度は簡単に動作できます。 手順を紹介します。

 

PyTorch + YOLOX のサンプル

Vitis AIのライブラリのReadmeに従って、データセットの学習までしたブログ記事です。

Vitis AI Model ZooでPyTorch+YOLOXを動かそうとしたメモ

Vitis AI Model ZooでPyTorch+YOLOXを動かそうとしたメモ
Vitis AI Model ZooでPyTorch+YOLOXを動かそうとしたメモです。 データセットの入手から学習までの流れを実施しています。 手順を紹介します。

 

番外

Vitis AIも使う機会がある、AIのコンテストにも参加していました。

その際の感想ブログ記事です。

 

第6回AIエッジコンテストの感想

自動車走行の画像とLIDAR点群による3D物体検出が課題でした。

Vitis AIを使って前処理~学習~量子化~テスト実装まで試しています。

第6回AIエッジコンテストが凄く難しいけど勉強になった感想

第6回AIエッジコンテストが凄く難しいけど勉強になった感想
第6回AIエッジコンテストに参加していました。 RISC-Vを使って、画像とLIDAR点群からの3D物体検出が課題でした。 ただ貴重な勉強の機会になりましたし、自身への忘備録としても内容を紹介します。

 

まとめ

Vitis AIは多くの機能があり、筆者が紹介したブログ記事も極一部の内容です。

またバージョンでかなり使い勝手が異なるので、注意が必要です。

是非皆さまもVitis AIを試してみて下さい。

 

コメント