はじめに
CPUやGPUは聞き慣れた言葉だと思いますが、DPUという言葉にはあまり馴染みがないかもしれません。DPU (Deep-learning Processing Unit) とは、従来のCPUやGPUに比べて深層学習用の処理(AI処理)に特化したプロセッサで、データ処理速度を大幅に向上させることができるため、注目を集めています。
今回は、AMD社が提供するKV260 ビジョン AI スターター キットにDPUを搭載し、物体検知モデルを使ったアプリをCPUとDPUで動かして処理速度の比較を行っていきます。
※KV260でアプリを動かす際に発生したエラーの対策やコツも記載していますので、皆さんがKV260を使う時の参考になればと思います。
環境構築から比較検証までを3部に渡り、説明していきます!
[コラム構成]
第1部:作業環境/事前準備について ★本コラム
第2部:AIモデルのダウンロ―ド/Keras変換/量子化/コンパイルについて
第3部:比較検証について
ではさっそく作業環境や事前準備について説明していきます。
作業環境
今回使用する環境は以下となっています。
◆KV260 ビジョン AI スターター キット
◆Linux PC(ubuntu 22.04 LTS)
・使用用途:AIモデルのKeras変換/量子化/コンパイル
◆microSDカード(32GB)
・使用用途:KV260のイメージを書き込む(イメージの書き込み手順は省略します。)
※32GBでギリギリな印象でしたのでこのくらいはあった方がよさそうです。
◆KV260接続用ノートPC(Windows10)
→KV260とノートPCはEthernet経由で接続
→TeraTermやブラウザからKV260上で立ち上げたjupyter notebook へアクセスし操作します。
また今回使用するツールは以下となっています。
◆Vitis AI
・AIモデルの量子化、コンパイル実行環境
・バージョン:最新の環境で大丈夫です。
※ 補足)Vitis AIはディープラーニングモデルを作成したり、最適化したり、デバイスで動かす手助けをするプラットフォームとなっています。
◆AIモデル変換ツール
・Keras変換ツール
→AIモデルをKeras形式へ変換するツール
※補足)量子化するためには今回使用するAIモデルをKeras形式(.h5)に変換する必要があるのでKeras変換を行います。
・量子化実行スクリプト
→AIモデルの量子化を実行するスクリプト
※補足)量子化とは、モデルのパラメータや重みを浮動小数点数から整数や低精度の浮動小数点数に変換することです。AMD社が提供するVitis AIでは、32ビット浮動小数点の重みと活性化値を8ビット整数(INT8)形式に変換します。DPU上で推論を行うにはAIモデルをターゲットボード用にコンパイルする必要がありますが、そのコンパイルには量子化モデルが必要となるので、量子化を行います。
事前準備(VitisAI、AIモデル変換ツールのインストール)
実際に作業を開始していきます。
まずは事前準備ということで、Vitis AI 、AIモデル変換ツール(Keras変換、量子化用スクリプト)をダウンロードしていきます。
■ VitisAIのダウンロード
① 以下コマンドでVitis AIをダウンロードします。
$ git clone https://github.com/Xilinx/Vitis-AI
② 以下コマンドでVitis AI dockerイメージ(CPU版)ダウンロードします。
$ sudo docker pull xilinx/vitis-ai-cpu:latest
-
③
-
手順①で「Vitis-AI」フォルダが生成されるので、vitis-AI>model_zooに移動し以下コマンドを実行し、Keras変換、量子化作業フォルダを作成します。
$ mkdir -p work/d2k
$ mkdir -p work/quant
※フォルダ構成は以下イメージ
-
■
-
Keras変換ツールのダウンロード
作成した「d2k」フォルダで以下コマンドを実行して重み変換ツールをダウンロードします。
$ git clone https://github.com/qqwweee/keras-yolo3
-
■
-
量子化スクリプトのダウンロード
作成した「quant」フォルダで量子化スクリプトを以下コマンドでダウンロードします。
$ wget https://www.xilinx.com/bin/public/openDownload?filename=tf2_yolov3_coco_416_416_65.9G_2.5.zip -O tf2_yolov3_coco_416_416_65.9G_2.5.zip
$ unzip tf2_yolov3_coco_416_416_65.9G_2.5.zip
最終的な作業環境は以下のようになります。
※今回の手順で分かりやすいようにフォルダ構成をしているので、好きなように変えても大丈夫です。
これで作業を行う準備ができました。
第2部ではAIモデルのダウンロード、Keras変換、量子化、コンパイルを行っていきたいと思います!
メーカー
AMD社の製品はこちら
関連ソリューション
FPGA/基板の受託開発
個別相談も承っております。下記よりお申し込みください。