メインコンテンツまでスキップ

最小構成

最小例:スクリプトを作成してDevKitで実行し、ランタイムの応答を確認する

インストール後、まずここでNeatのセットアップが正しく接続されていることを確認します。

最初の実行は意図的に小さくしています。簡単なアプリを作成し、ヘッダーまたはインポートが解決されてビルドできることを確認してから、DevKitで実行してランタイムの応答を確認します。完了したら、アプリの実行に進み、小さなGraphアプリケーション内で実際のモデルを実行してください。

Neat SDKの前提条件

SDK内からDevKit上のコマンド(dk build/sima_neat_hellodk hello_neat.pyなど)を直接実行するには、先にDevKitのペアリングを設定します。

必須設定: DevKit Sync

まだDevKitがない場合は、SDK内だけで実行できるモデルのコンパイルから始めてください。

最小アプリケーション

例用の作業ディレクトリを作成し、**Python / C++**タブから使用する言語の手順を進めます。選択内容はサイト全体の言語セレクターに反映され、ほかのドキュメントでも維持されます。

2つのファイルを作成します:

  1. CMakeLists.txtで、アプリのビルド方法とリンク方法をCMakeに指定します。

    CMakeLists.txt
    cmake_minimum_required(VERSION 3.16)
    project(sima_neat_hello LANGUAGES CXX)

    set(CMAKE_CXX_STANDARD 20)
    set(CMAKE_CXX_STANDARD_REQUIRED ON)
    set(CMAKE_CXX_EXTENSIONS OFF)

    # Supports both:
    # - DevKit/native installs (system paths)
    # - Cross builds with SYSROOT exported (SDK sysroot paths)
    if(DEFINED ENV{SYSROOT} AND NOT "$ENV{SYSROOT}" STREQUAL "")
    list(APPEND CMAKE_PREFIX_PATH
    "$ENV{SYSROOT}/usr"
    "$ENV{SYSROOT}/usr/lib"
    "$ENV{SYSROOT}/usr/lib/aarch64-linux-gnu"
    )
    endif()

    find_package(SimaNeat REQUIRED CONFIG)
    find_package(PkgConfig REQUIRED)
    pkg_check_modules(OPENCV REQUIRED IMPORTED_TARGET opencv4)

    add_executable(sima_neat_hello main.cpp)
    target_link_libraries(sima_neat_hello
    PRIVATE
    SimaNeat::sima_neat
    PkgConfig::OPENCV
    )

    強調表示された2か所がNeatをビルドに取り込みます。find_package(SimaNeat REQUIRED CONFIG)はインストール済みのNeatパッケージを検出し、target_link_libraries(sima_neat_hello PRIVATE SimaNeat::sima_neat ...)は実行ファイルをパッケージへリンクします。インポートされたSimaNeat::sima_neatターゲットがNeatのヘッダーと推移的依存関係も提供するため、インクルードパスやライブラリパスを手動で設定する必要はありません。OpenCVの行は、この例で画像をデコードするためにだけ必要です。

  2. main.cppには小さなNeatプログラムを記述します。

    main.cpp
    #include <iostream>
    #include <pipeline/TensorCore.h>

    int main() {
    auto storage = simaai::neat::make_cpu_owned_storage(64);
    if (!storage) {
    std::cerr << "Failed to allocate CPU tensor storage\n";
    return 1;
    }
    std::cout << "Hello from sima-neat\n";
    return 0;
    }
  3. 作業ディレクトリは次のようになります。

    sima-neat-hello/
    ├── CMakeLists.txt
    └── main.cpp

例をビルドします:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j

実行:

  • DevKit上
    ./build/sima_neat_hello
  • Neat SDKホスト上
    dk build/sima_neat_hello

次の出力が表示されます。

Hello from sima-neat

プログラムがビルドされ、インポートを解決でき、メッセージが表示されれば、Neatのインストールは完了です。

dk / devkit-runについて

dkdevkit-runのエイリアスで、SDKコンテナ内のシェル関数です。~/devkit-sync.rcで定義され、~/.bashrcから読み込まれます。

シェル関数のため、SDKシェルでwhich devkit-runなどを実行しても何も返されない場合があります。dk <file>を使用し、ビルド済みバイナリまたはPythonエントリポイントをペアリング済みDevKitで実行してください。

次のステップ

最小アプリが動作したら、アプリの実行に進み、小さなGraphアプリケーション内で実際の物体検出モデルを実行します。