PIXELA Technical Expertise とは
近年、技術の移り変わりは非常に速くなっています。
同時にそれら技術に関わるツールも使いやすく便利なものとなり、無償もしくは安価に利用できるものが多く提供されています。
技術者にとって、実際にそれらに触れることができる敷居が下がり、結果として、多くの技術者が自らの成果、体験を公開し互いに学習できる環境が整いつつあります。しかし、体系的に整理された情報は少なく、複数の情報から自分の求める情報を精査するのに多くの労力が必要です。
当社でもそのような労力を割いて技術力向上に努めており、その内容を整理して公開することで、このようなエンジニアの一助になればと考え、本サイトの立ち上げました。
公開することで当社の理解もさらに深まることを期待しています。
Vivado/Vitis
本サイトで使用するVivado/Vitisをインストールする手順を説明します。本サイトでは、linux版Vivado/Vitisを使用していますが、Windows版のインストールの説明もします。
開発環境
Windows10(Windows版)
Ubuntu 20.04LTS(linux版)
Vivado/Vitisをインストールする
Vivado/Vitisをインストールしたら、次はFPGAに触れてみます。 Digilent社の開発ボードZybo Z7-20を利用してXilinx社の開発環境Vivadoの基本的な使い方を理解します。簡単な例をこなすことで操作に慣れることが目標です。
開発環境
Ubuntu 20.04LTS
Vivado2022.1
Zybo Z7-20
ZyboZ7-20
Zybo-Z7は、Digilent社より発売されている、ZYNQ7000シリーズを搭載したFPGAボードです。比較的安価なコストで購入することができ、本FPGAボードを利用した情報も各所に充実しているため初学には最適なボードです。
Configuration
本テーマは、下表の条件を前提にすすめますので、動作確認の際、正しくセットアップされているか確認ください。
Items | Setting |
---|---|
電源 | 5Vの電源をUSBより供給します |
JP6 | 電源ソースの設定です。 USBバスパワーで動作させますので、USBのシルク印刷の通りジャンパーピンを設定してください。 |
JP5 | ソフトウェアのBootModeを設定します。 本テーマではハードロジックのみのため、本設定は影響しません。SDの設定にしておいてください。 |
JP2 | 今回は使用しません。ジャンバーピンを取り付けたままとしてください。 |
Vivadoに触れてみる
Vitis AI
XilinxのKria KV260ビジョンAIスターターキットでVitis-AIの概要、使い方を理解します。Vitis-AIにより深いFPGAの知識がなくてもボード上でAI推論を行うことができるということなので、実際にAI推論を行うまでに必要な手順を確認していきたいと思います。
記事ではAI推論を行うために必要な環境準備とコンパイル済みAIモデルを使用する方法、AIモデルを作成してボード用にコンパイルする方法を紹介します。将来的にはVivado, Vitis、Petalinuxを使用したカスタムイメージの作成やAI推論アプリの組み込みについて紹介して行ければと思います。
開発環境
Host OS : Ubuntu 20.04LTS
Board : Kria(KV260)
Vitis-AI : 2.5
Vivado, Vitis, Petalinux : 2022.1
必要機材
USB(A) - microUSB(B)ケーブル : シリアル接続用
microSDカード(16GB以上) : イメージ書き込み用
ネットワーク環境 : ホストPCとボードを同一ネットワーク内に配置のため
Vitis-AIに概要説明、ソースがありますがターゲットボード上でAI推論するためのツールとなります。大まかな概要としては
- 既存の学習済みAIモデルをターゲットボード向けにコンパイルする機能
- Model Zoo(多数のAIモデルの関連コード、ファイル、ボード向けコンパイル済みモデル)
- ターゲットボード上でAIモデルを展開するためのランタイム、ライブラリ
が提供されておりFPGAの深い知識がなくてもボード上でAI推論アプリを作成することが可能になっています。
Kria Starter Kitで、Vitis AIを動かす
Petalinux
Vivado/Vitisの記事では、Vivado/Vitisを使うことで、自分で作成したダイアグラムと高級言語から簡易に扱うI/Fによって、直接的な動作確認を行いました。
しかし、Zynq はPS/PLで構成されており、 ZYBO Z7-20 には他にも多彩なI/Fが用意されているので、OSを動かした上で、必要な処理をPL上で駆使できれば、色々と利用できる幅が広がります。Xilinxからはこのようなソリューションとして Petalinux というものが提供されています。これを利用して、OS側からのデータを一旦FPGAで処理した上でどこかの出力へ繋ぐ、ということを試してみたいと思います。
出力結果が確認しやすいものとして、映像や音声があります。今回は、簡単な音声出力を扱っていきましょう。
開発環境
- Ubuntu 20.04.5LTS
(RAM 8GB以上必要、CPU 2GHz 8コア以上必要、100GB以上のディスク空き容量が必要) - Vivado 2022.1
- 機材
- ZYBO Z7-20
- ACアダプター 5V/3A程度のもの。 AD-D50P300 など
- スピーカーorヘッドフォン(ステレオミニプラグ接続)
- micro USB - USB ケーブル(通信用)
- microSDカード(16GB以上)及びカードリーダー
- ネットワーク環境
- wavファイル
Petalinux とは
Petalinux は、Xilinx 社が開発している組み込み向け Linux デストリビューションです。
専用のソフトウェア開発キット(SDK)を利用して、ブートローダーや Linux カーネルのカスタマイズ、独自のデバイスドライバーの作成など、さまざまな Linux ベース製品の開発を行うことができます。
Petalinuxを使ってみよう
PetalinuxでWavファイルを再生する(1)
PetalinuxでWavファイルを再生する(2)
GStreamer
GStreamer はマルチメディアを扱うアプリケーションのためのライブラリです。
GStreamer の利点として、 Android, iOS, Linux, macOS, Windows など様々なプラットフォームで利用できる、各種マルチメディアのフォーマットを標準でサポートしている、といった点が挙げられます。更に、標準ではサポートされていないフォーマットや機能についても、独自のプラグインを開発することで GStreamer を拡張できます。
この記事では、 GStreamer を利用したアプリケーションのコードを実装して動かしたり、独自のプラグインを開発したりしながら、 GStreamer の動作する仕組みを解説していきます。
※文中に記載されている各種名称、会社名、商品名などは各社の商標もしくは登録商標です。