# 簡単にはじめる

ここでは、事前に用意されたテンプレートを使用して、GENESIS DevEnv による開発フローを体験する方法について説明します。

# 1. プロジェクト一覧を見る

GENESIS DevEnv にログインすると、このようなプロジェクト一覧が表示されます。

プロジェクト一覧

画面中央のリスト部分には以下4つの項目があります。

  • プロジェクト名: 作成したプロジェクト名です。
  • 最終更新: プロジェクト最終更新日です。
  • レポート: ユーザーのビルド済みプロジェクトの実行レポートです。
  • アクション: プロジェクトのコピーや削除を行います。

# 2. プロジェクトを作成する

ユーザー独自のプロジェクトを作成してみましょう。 画面右上の +新規プロジェクト ボタンをクリックし、「プロジェクト テンプレート」に表示されているプロジェクトテンプレート一覧から、ベースにしたいプロジェクトテンプレートをクリックしてください。

この操作によって、選択したプロジェクトをもとにユーザーのプロジェクトが作成され、プロジェクトの構成ページに遷移します。

テンプレートからプロジェクトを作成する

プロジェクトの構成ページでは、以下の操作を行うことができます。

  • アプリケーションの開発
  • アプリケーションの動作プレビュー
  • アプリケーションのビルド

中央のキャンバス上に表示されている箱と矢印が、アプリケーションの定義です。 GENESIS DevEnv では、最低限の機能単位(ビルディングブロックと呼ばれます)のデータ入出力を方向つき接続線で結合することで、アプリケーションを定義します。 方向付き接続線による結合は、データがその矢印の方向に流れることを表します。

左側の ビルディングブロック のボタンを右側のキャンバス上にドラッグアンドドロップするとビルディングブロックを追加できます。削除する場合は対象のビルディングブロック選択しキーボードの DEL ボタンを押すと削除できます。

個々のビルディングブロックは、異なるパラメータを持っています。 キャンバス上でビルディングブロックをクリックすることで、右側のペインにプロパティのリストが表示されます。

ビルディングブロックのプロパティ設定

表示されたテキストボックスに任意のプロパティ値を設定することができます。 ビルディングブロックが提供するプロパティがそれぞれどのような意味を持つのかは、ビルディングブロックの リファレンスマニュアル か、公開されているビルディングブロックのソースコードを参照してください。

# 3. プレビューによって動作を確かめる

プロジェクト構成ページでは、構成中のアプリケーションの動作をプレビューという機能を通じて確認することができます。

プレビュー表示

画面右上の プレビュー ボタンを押し、 プレビュー作成 をクリックしてみましょう。 プロジェクトのビルドと、サーバ上での実行が行われます。 プレビューが完了すると、プレビュー ボタンに緑色の●が表示されます。プレビューウィンドウに選択されているブロックの出力結果が画像として表示されます。

プレビュー表示

# 4. 実デバイス上での動作速度を計測してみる

右上の レポート作成 ボタンを押してみましょう。 ビルド名の入力フィールドと、ビルド対象のデバイスのリストが出てきます。 任意の名前を入れ、任意のデバイスのスイッチをオンにして、実行 ボタンを押してください。

プロジェクトのビルド

この操作により、以下ができるようになります。

  • 構成したアプリケーションを様々なデバイス向けに最適化コンパイル
  • アプリケーションの実デバイス上でのべンチマークの実行とレポートの閲覧
  • コンパイルした実行ファイルのダウンロード

実行 ボタンを押し、画面下側に「このプロジェクトに基づいてレポートが作成されました。」メッセージが表示されたら、画面左側の レポート メニューからレポート一覧ページを表示します。 作成したプロジェクトのステータスが「最適化パターン」に表示されます。 レポート一覧の情報は常に更新されています。 ビルドが完了すると、以下の様に表示されます。

ダッシュボード上のビルドが完了したレポート

  • レポート名: 作成したレポート名です。
  • プロジェクト名: レポート作成元のプロジェクト名です。
  • 作成日時: レポート作成日です。
  • 進捗: レポート作成の進捗状況、またはステータスです。
  • デバイス: ビルド対象の実デバイス名です。
  • アクション: レポートの削除を行います。

# 5. 実行レポートを閲覧する

レポート一覧からレポート名をクリックすると、レポートのページに遷移します。

# 5.1 実行レポート概要の閲覧

「概要」タブでは、全デバイスの情報を一覧して見ることができます。 レポート表示

  • レポート名: レポート名が表示されます。レポート名の修正を行うことも可能です。
  • サマリー: 最適化パターン毎の消費電力、実行時間、スループットをグラフで表しています。
  • プロジェクト: レポート作成元のプロジェクトのビルデングブロックのキャプチャー、プロジェクト名、プロジェクトIDを表しています。プロジェクトを見る ボタンをクリックするとプロジェクト画面へ遷移します。
  • 選択されたデバイス: レポート作成時選択したデバイスを確認できます。仕様を見る ボタンをクリックすると、デバイスの仕様を確認できます。
  • 最適化パターン一覧: デバイス毎の最適化パターンを一覧で表しています。「進捗」が 作成済 になると「名称」項目がリンク表示され、最適化パターンの詳細が確認できます。

最適化パターン

  • レポート名・最適化パターン名: 最適化パターン名が表示されます。レポート名をクリックするとレポートページに遷移します。
  • ビルディングブロック別実行時間: ビルディングブロック毎の実行時間を表しています。処理に利用したプロセッサ別に色が分かれています。
  • プロセッサ使用率: ベンチマークテストを実施した際の各プロセッサの使用時間比率を表しています。

「実行時間」タブでは、各デバイスの最適化パターンごとの実行時間をグラフとして閲覧することができます。 レポート表示

「消費電力」タブでは、構成したパイプライン実行一回あたりにかかる消費電力の推定値を比較することができます。 レポート表示

「スループット」タブでは、1秒あたりに何回パイプラインを実行できるかという観点で処理速度を比較することができます。 レポート表示

「コストパフォーマンス」タブでは、1ドルあたりのスループットを比較することができます。 レポート表示

# 5.2 最適化パターンの比較

最適化パターン一覧から、2つの最適化パターンを詳細に比較することができます。

レポートページの「概要」タブへ移動し、画面下の最適化パターン一覧から比較したいパターンの「比較」項目のチェックボックスを2つオンにして、右上の「パターンを比較」ボタンをクリックすると、パターンの比較ページに遷移します。 パターンを比較

「ビルディングブロックごとの実行時間」では、選択した2つの最適化パターンのビルディングブロックごとの実行時間をグラフとして比較することができます。各グラフの色は処理が実行されたプロセッサを表しています。 ビルディングブロックごとの実行時間

「パターン別に見たビルディングブロックごとの実行時間」では、実行時間をビルディングブロックごとにより詳しくを比較することができます。各グラフの色は処理が実行されたプロセッサを表しています。 パターン別に見たビルディングブロックごとの実行時間

# 6. 実機へのデプロイ

# 6.1 事前セットアップ

各環境ごとに動作が確認されているLinux環境は以下のとおりです。

  • Ubuntu 18.04 LTS (AAEON Upcore)
  • JetPack 4.4 (Jetson Nano, JetsonNX)
  • PYNQ 2.6 (Avnet Ultra96)
  • Mendel Linux 5.2 (Google Coral)

サービス上で作成したアプリケーションを実行するためには、各デバイスごとに一度だけ、以下のライブラリをシステムにインストールする必要があります。

x86 プラットフォーム向けには、ディストリビューションのパッケージマネージャを通じて、あるいは公式ページよりダウンロードを行ってください。 aarch64 プラットフォーム向けには、以下からビルド済みのバイナリを取得できます。 手元の環境にあったバイナリをダウンロードし、システムが参照可能な場所にインストールしてください。

展開したパッケージ以下のディレクトリlibへのパスを環境変数 LD_LIBRARY_PATH へ設定してください。

# 6.1.1. Ultra96-V2 上での事前セットアップ

Ultra96-V2上でアプリケーションを動作させるためには、PYNQ v2.6(opens new window) イメージからブートした環境上で実行する必要があります。 PYNQのセットアップガイド(opens new window) に沿って、コンパイル済みのPYNQイメージをMicroSDカードに書き込み、PYNQイメージのブートを行ってください。

また 6.1. 事前セットアップに加えて、以下のライブラリをインストールする必要があります。

READMEに従って、インストールを行ってください。

アプリケーションを実行する際には、事前にXilinx DPU IP(opens new window) がOverlayされている必要があります。 以下のコマンドをデバイス上で実行し、DPU IPのOverlayを行ってください。

sudo su
python3 -c "from pynq_dpu import DpuOverlay; overlay = DpuOverlay("dpu.bit");"
dexplorer -w
1
2
3

以下のようにDPU IPの情報が出力されれば、DPU IPが正しくOverlayされています。

[DPU IP Spec]
IP  Timestamp            : 2020-06-18 12:00:00
DPU Core Count           : 1

[DPU Core Configuration List]
DPU Core                 : #0
DPU Enabled              : Yes
DPU Arch                 : B1600
DPU Target Version       : v1.4.1
DPU Freqency             : 300 MHz
Ram Usage                : Low
DepthwiseConv            : Enabled
DepthwiseConv+Relu6      : Enabled
Conv+Leakyrelu           : Enabled
Conv+Relu6               : Enabled
Channel Augmentation     : Disabled
Average Pool             : Enabled
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 6.2 デプロイ

デプロイ対象のデバイスに対応する、最適化パターン個別のページをクリックし、右上の デプロイ ボタンを押すと、以下のようなダイアログが開きます。

デプロイ

表示されているコマンドをデバイス上のターミナルに貼り付け、実行してください。

# 7. 実行ファイルを動かす

サービス上で作成したアプリケーションは、実行ファイルとしてダウンロードして実デバイスで動作させることができます。

# 7.1 事前セットアップ

6.1 事前セットアップ を参照して、実行対象のデバイスへ事前セットアップを行います。

# 7.2 実行ファイルのダウンロード

実行対象のデバイスに対応する、最適化パターン個別のページをクリックし、右上の 実行ファイルをダウンロード ボタンを押すと、ファイルのダウンロードが可能です。

実行ファイル

# 7.3 実行ファイルの実行

ダウンロードした実行ファイルをデバイス上に配置し、ターミナルで実行してください。

Last Updated: 2021/06/16