本文へスキップ
SDK Version: 2.3.3

最初の NPU モデルを実行する

このガイドでは、すべてのインストールを完了した後、DEEPX NPU で実際の AI モデルを実行するためのエンドツーエンドの実践的なプロセスを説明します。自動化スクリプトを順番に実行することで、モデルコンパイルから推論成功までのパイプライン全体を体験できます。

全体パイプライン

DEEPX NPU モデルのデプロイは、最適化 (コンパイラ) から実行 (ランタイム) まで、構造化された 6 ステップのワークフロー (ステップ 0〜5) に従います。

ステップタスク関連スクリプト備考
ステップ 0環境確認compiler-0...sh,
runtime-0...sh
SDK インストールと NPU ドライバーの検証
ステップ 1モデルダウンロードcompiler-1_download_onnx.sh元の学習済みモデル (ONNX) のダウンロード
ステップ 2データ準備compiler-2_setup_calibration_dataset.sh量子化最適化のための参照データセット準備
ステップ 3パス設定compiler-3_setup_output_path.shコンパイル済み出力 (.dxnn) の保存パス設定
ステップ 4NPU コンパイルcompiler-4_model_compile.shハードウェア最適化された .dxnn バイナリの生成
ステップ 5NPU 推論runtime-3_run_example_using_dxrt.shNPU でモデルを実行して結果を検証

ディレクトリ構造 完了後、getting-started/ フォルダは実際のデータソースへのシンボリックリンクで構成されます。

getting-started/
├── calibration_dataset # dx-compiler/dx_com/calibration_dataset
├── dxnn # dx-compiler/dx_com/output
├── forked_dx_app_example # サンプル実行ターゲット (フォーク済み)
│ ├── bin
│ │ ├── efficientnet_async
│ │ └── yolov5_async
│ │ └── yolov5face_async
│ └── sample
│ └── ILSVRC2012
└── sample_models # dx-compiler/dx_com/sample_models
├── json
└── onnx

準備 開始前に、環境が以下の基準を満たしていることを確認してください:

  • 前提条件: DX-AllSuite のインストールが完全に完了している必要があります。
  • 環境選択 : ローカル: ドライバーと SDK をホスト OS に直接インストールしたユーザー向け。 : Docker: DEEPX Docker イメージが提供するコンテナ内で作業するユーザー向け。 ヒント: すべてのスクリプトはコンテナ内 (docker exec 経由) で必ず実行してください。

DX-Compiler: AI モデルコンパイルスクリプトガイド (ステップ 0〜4)

このセクションでは、ステップ 0 からステップ 4 までの順次ワークフローを通じて、標準 AI モデルを NPU 専用バイナリ (.dxnn) に変換するプロセスを詳述します。

A. 実行順序

スクリプトは getting-started ディレクトリ内で以下の順序で必ず実行してください。

./getting-started/compiler-0_install_dx-compiler.sh # 環境セットアップ
./getting-started/compiler-1_download_onnx.sh # モデル取得
./getting-started/compiler-2_setup_calibration_dataset.sh # データ準備
./getting-started/compiler-3_setup_output_path.sh # パス設定
./getting-started/compiler-4_model_compile.sh # 最終コンパイル

B. 共通原則とヒント

すべてのコンパイラスクリプトは、ワークフローを一貫して維持するために「スマートデリゲーション」設計に従っています。

  • ロジック委譲: 実際の処理は dx-compiler/example/ に位置する元のスクリプトにオフロードされます。
  • 自動環境検出: スクリプトは ホスト または Docker 環境で実行中かどうかを自動的に識別し、パスとシンボリックリンクを設定します。
  • 最終アセット: 各ステップは NPU 推論の必須アセットである .dxnn ファイルを生成するためのマイルストーンです。

C. 詳細スクリプトガイド

[ステップ 0] compiler-0_install_dx-compiler.sh (パッケージインストール) モデルコンパイラ (dxcom) の環境をセットアップします。

  • コア機能: dx-compiler 環境をインストールし、簡単なヘルスチェックを実行します。
  • スマートチェック: dxcom -v を使用して既存のインストールを検査します。既にある場合、(--force フラグを使用しない限り) 冗長なセットアップで時間を無駄にしません。

[ステップ 1] compiler-1_download_onnx.sh (モデルダウンロード) コンパイル用のサンプルモデルファイル (.onnx および .json) を準備します。

  • サポートモデル: YOLOV5S-1, YOLOV5S_Face-1, MobileNetV2-1
  • マッピング: getting-started/sample_models と SDK 内部の dx-compiler/dx_com/sample_models 間にシンボリックリンクを作成します。

[ステップ 2] compiler-2_setup_calibration_dataset.sh (キャリブレーションデータ設定) モデル量子化プロセス中に精度を維持するための参照データセットを取得します。

  • 目的: 代表的な画像データセットをダウンロードして解凍します。最適化後も精度が高く維持されるようにモデルをキャリブレーションします。
  • 結果: ローカルの getting-started/calibration_dataset を SDK コアにリンクします。

[ステップ 3] compiler-3_setup_output_path.sh (パス設定)

環境物理パス (実際のストレージ)論理パス (アクセスポイント)
Docker${DOCKER_VOLUME_PATH}/dxnngetting-started/dxnn/
ローカル${DX_AS_PATH}/workspace/dxnngetting-started/dxnn/
ヒント

この「論理パス」抽象化により、後続のランタイムスクリプトがサーバーとローカル PC のどちらで実行されているかに関係なく、同じ場所 (dxnn/) でモデルを検索できます。

[ステップ 4] compiler-4_model_compile.sh (モデルコンパイルの実行) 準備されたモデルとデータを組み合わせて NPU 最適化バイナリを生成する最終ステージです。

  • コアアクション: dxcom エンジンを呼び出して以下の融合を実行します: : ONNX (構造) + JSON (設定) + キャリブレーション (精度) = .dxnn (最適化されたバイナリ)
  • 出力: 新しい .dxnn ファイルは dx-compiler/dx_com/output/ に保存され、getting-started/dxnn リンク経由ですぐにアクセスできます。

DX-Runtime: アプリケーション実行スクリプトガイド (ステップ 0, 5)

この章は、ステップ 0 (環境セットアップ) とステップ 5 (推論) に焦点を当て、最適化されたモデルを実際の DEEPX NPU ハードウェアにデプロイして実行します。

A. 全実行順序

安定した動作を確保するために、getting-started/ ディレクトリ内でこれらのスクリプトを順次実行してください。

./getting-started/runtime-0_install_dx-runtime.sh # 環境セットアップ
./getting-started/runtime-1_setup_input_path.sh # モデル接続
./getting-started/runtime-2_setup_assets.sh # リソース準備
./getting-started/runtime-3_run_example_using_dxrt.sh # サンプル実行

B. 共通原則とヒント

すべてのランタイムスクリプトは、シームレスなデプロイ体験を確保するために以下のロジックで設計されています。

  • インテリジェント診断・復旧: スクリプトは sanity_check.sh を使用して NPU ドライバーとインストール整合性を自動的に検証します。環境が破損している場合は -f または --force で再初期化します。
  • 環境適応ロジック: ホストまたは Docker 環境に基づいてパスが動的に割り当てられます。ヘッドレス (TTY) 環境では、スクリプトが自動的に --no-display フラグを適用して GUI エラーを防ぎます。
  • リソース委譲: スクリプトは dx_app/setup.sh をトリガーして forked_dx_app_example フォルダに必要なバイナリとサンプルデータを自動的に配置します。
  • 視覚的検証: : CLI 環境: ターミナルで直接結果画像を表示するための fim (fbi improved) インストールルーティンが含まれます。 : Docker 環境: GUI 出力が制限されているため、docker cp <container_id>:/path/to/result ./local_path で結果を取得できます。
前提条件

前のコンパイラステップで .dxnn ファイルを正常に生成している必要があります。ランタイムエンジンはこれらのハードウェア最適化バイナリなしでは動作できません。

C. 詳細スクリプトガイド

[ステップ 0] runtime-0_install_dx-runtime.sh (パッケージインストール) DEEPX NPU 制御のためのコアソフトウェアスタックを構築します。

  • 主要機能: ランタイムライブラリをインストールし、ドライバーの動作を検証します。
  • 最適化: sanity_check.sh がドライバーが既に正しくロードされていることを検出すると、冗長なインストールステップをスキップします。
  • 時間節約オプション: --exclude-fw を使用してファームウェア更新をスキップしながらソフトウェアスタックをインストールできます(ファームウェアが既に最新の場合に有用)。

[ステップ 5 準備] runtime-1_setup_input_path.sh (モデルパス同期) コンパイルフェーズで生成された .dxnn モデルをランタイムエンジンがロードできるようにパスを同期します。

環境物理パス (実際のストレージ)論理パス (アクセスポイント)
Docker${DOCKER_VOLUME_PATH}/dxnngetting-started/dxnn/
ローカル${DX_AS_PATH}/workspace/dxnngetting-started/dxnn/

[ステップ 5 準備] runtime-2_setup_assets.sh (リソース準備) 推論サンプルを実行するために必要な依存ファイルとサンプルデータを準備します。

  • アクション: dx_app および dx_stream ディレクトリ内の setup.sh スクリプトを順次呼び出します。
  • 注意: このスクリプトは各モジュール内のリソースを管理します。forked_dx_app_example フォルダに冗長なコピーは作成しません。

[ステップ 5] runtime-3_run_example_using_dxrt.sh (サンプル実行と結果確認) このスクリプトはモデルを NPU にロードし、実際のパフォーマンスを測定して、3 つのコアタスクにわたって可視化された出力を生成します。

モデル入力データタスク反復回数
YOLOV5S_Face-1face_sample.jpg[1] 顔検出30
YOLOV5S-11.jpg[2] 物体検出300
MobileNetV2-11.jpeg[3] 画像分類300
  • 結果レポート: 実行完了後、スクリプトは平均 FPS (フレーム毎秒) とレイテンシ (ms) をターミナルに出力します。
必須確認事項

このパイプラインは、ステップ 1 の 3 つすべてのサンプルモデルがステップ 4 で正常にコンパイルされていることを前提としています。

  • モデルが欠落している場合、推論中に「ファイルが見つかりません」エラーが発生します。
  • エンドツーエンドのプロセス全体を検証するために、このランタイムスクリプトを実行する前に 3 つすべてのモデル をコンパイルすることを強くお勧めします。