FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

OpenVX実装についての調査とチュートリアル試行

ザイリンクスのreVISIONスタックは、コンピュータビジョン、機械学習、コネクティビティ & センサー サポート に注力してFPGA上で動作させることのできるハードウェアデザインやソフトウェアスタックを提供している。

このなかでコンピュータビジョンに注目してみると、コンピュータビジョン向けの最も有名なライブラリ群OpenCVをベースにしたザイリンクスのxfOpenCVを提供している。

  • 高い応答性とリコンフィギャラブルなビジョン システム

https://japan.xilinx.com/products/design-tools/embedded-vision-zone.html#computer

この中で、提供しているライブラリは、上記のウェブサイトによると、

  • OpenCV 3.1 ライブラリの数百以上の関数が、Zynq の ARM Cortex™-A9 および Cortex A53 コアで実行するために利用可能
  • 約 45 個の OpenCV 関数 (OpenVX のサブセット) が、ザイリンクス SoC 向けに RTL に最適化された関数ライブラリとして利用可能
  • バイス使用率と性能を示したライブラリ ユーザー ガイド
  • ほとんどの関数は、1 および 8 ピクセルのパラレル バージョンに対応

OpenCVはARM Cortexで動作させ、OpenVXのサブセットはSoCやRTL実装されているということだろうか?興味がある。 そもそもOpenVXというのは画像認識のためのAPIで、現在はバージョン1.2まで定義されているが実装としてはnVIDIAAMDによる実装しか存在していない。

www.khronos.org

VisionWorks | NVIDIA Developer

AMD OpenVX (AMDOVX) - GPUOpen

とりあえずWindows上で手っ取り早く試してみる方法として、他者が提供している仮想マシンをダウンロードして実行してみる方法がある。

GitHub - rgiduthuri/openvx_tutorial: Khronos OpenVX Tutorial Material

VirtualBoxの仮想イメージをダウンロードして、実行してみると、いくつかプロジェクトが立ち上がってOpenVXのサンプルを実行できる。

f:id:msyksphinz:20170920231102p:plain

それ以外にも、日本語のチュートリアルも存在する。これらをいくつか触ってみて、OpenVXの理解を深めていこうかな。

github.com