Перейти до основного вмісту

DevKit Sync

Лише для довідки.

Налаштування DevKit Sync є необов’язковим під час встановлення SDK, і програма встановлення вже пропонує вам це зробити. Використовуйте цю сторінку як довідник, щоб дізнатися, як працює DevKit Sync, або коли ви захочете змінити пару SDK на інший DevKit пізніше.

DevKit Sync з’єднує середовище розробки Neat (далі – Neat SDK) з Modalix DevKit в одній мережі. Воно надає спільний доступ до одного робочого простору для хоста, контейнера Neat SDK та DevKit, а також забезпечує допоміжний інструмент dk для запуску команд, створених за допомогою SDK, на апаратному забезпеченні.

Відображення робочого простору хоста та контейнера DevKit.

Один і той самий робочий простір монтується в контейнер Neat SDK та DevKit як /workspace, тому артефакти збірки, журнали, трасування та файли моделей доступні з кожного середовища.

Налаштуйте DevKit Sync.

Якщо ви пропустили етап підключення DevKit під час встановлення або потребуєте змінити його пізніше, виконайте цю команду налаштування на хості:

sima-cli sdk setup --devkit {devkit-ip}

Під час налаштування:

  • Виберіть встановлене sdk:v2.1-latest зображення, якщо встановлено кілька версій SDK.
  • Приймайте значення за замовчуванням для шляху монтування /workspace DevKit, якщо вам не потрібен інший. шлях.
  • Введіть пароль адміністратора хоста, коли буде запропоновано налаштувати сервер NFS на цьому хості.
  • Введіть облікові дані користувача DevKit, коли буде запропоновано. Облікові дані користувача за замовчуванням: sima. а пароль за замовчуванням — edgeai.
  • Починаючи з версії SDK 2.1.2.2, під час налаштування можна використовувати протокол rsync через SSH, якщо Не можна налаштувати NFS для взаємодії між хостом і DevKit.

У разі успішного завершення налаштування ви повинні побачити вивід, подібний до такого:

============================================================
DevKit Connected
============================================================
DevKit target : sima@192.168.91.221:22
Mounted path : /workspace
Host export : 192.168.74.48:/Users/joey/workspace

You can now run DevKit binaries from this SDK shell:
dk /workspace/<path-to-arm64-binary> [args...]
============================================================

Всередині оболонки SDK використовуйте dk status, щоб підтвердити підключення DevKit і активний метод синхронізації робочого простору:

dk status

Оновіть процес підключення через SDK.

Використовуйте цю послідовність дій, якщо Neat SDK вже встановлено, і вам потрібно під’єднати інший DevKit або оновити підключення після зміни IP-адреси вашого DevKit.

У контейнері Neat SDK виконайте:

source devkit.sh {devkit-ip}

Замініть {devkit-ip} на IP-адресу DevKit, який ви хочете використовувати.

Приклад:

source devkit.sh 192.168.91.221

Налаштуйте SDK без DevKit Sync.

Якщо до DevKit неможливо отримати доступ з хоста Neat SDK, ви все одно можете налаштувати робочий простір SDK без встановлення з’єднання:

sima-cli sdk setup

Ви все ще можете створювати виконувані файли в контейнері Neat SDK, але їх потрібно буде вручну перенести до DevKit для тестування. Переконайтеся, що на DevKit запущено сумісну версію Neat Library.

Обмін файлами за допомогою DevKit Sync.

DevKit Sync об’єднує три середовища:

  1. Хост
  2. Контейнер Neat SDK
  3. DevKit

sima-cli sdk setup --devkit {devkit-ip} налаштовує NFS таким чином, щоб один і той самий робочий простір був доступний у всіх трьох середовищах:

  • Тека робочого простору хоста експортується через хост NFS.
  • Теку змонтовано в контейнері Neat SDK як /workspace.
  • Один і той самий контент відображається в DevKit, як і в /workspace, через NFS.
  • Ім’я змонтованої теки за замовчуванням — /workspace, і його можна змінити під час налаштування.

Це налаштування забезпечує прямий процес для створення артефактів:

  • Артефакти, створені за допомогою Neat SDK, одразу стають видимими. на DevKit без окремого етапу розгортання.
  • Агенти можуть переглядати журнали, результати, трасування та інші проміжні файли, що були створені. поки застосунок працює на DevKit.
  • Розробники та агенти можуть переглядати одні й ті самі файли в межах одного робочого середовища.

За допомогою Insight ви можете переглядати робочий простір у веб-браузері. Деякі специфічні архіви моделей SiMa.ai, наприклад, артефакти моделей у форматі *.tar.gz, автоматично оптимізуються для полегшення перевірки.

Резервне копіювання за допомогою Rsync

Починаючи з версії SDK 2.1.2.2, DevKit Sync може використовувати rsync через SSH як резервний варіант, якщо налаштування NFS не вдається. Це корисно в мережах або на хостах, де SSH-з’єднання з DevKit працює, але неможливо змонтувати експортовану хостом файлову систему NFS для DevKit.

Коли активовано резервний варіант rsync:

  • Хост і контейнер SDK, як і раніше, використовують локальну директорію /workspace.
  • DevKit використовує синхронізований віддалений робочий простір, зазвичай. /workspace-rsync.
  • dk status повідомляє про Sync method : rsync і показує локальні та віддалені дані. шляхи до робочої області.
  • dk <file> [args...] відображає шляхи з робочого простору SDK на DevKit rsync. робочий простір перед віддаленим виконанням команди.
  • Перш ніж dk виконає файл, він автоматично синхронізує теку робочого простору верхнього рівня. файл, який містить цей файл. Наприклад, dk apps/demo.py синхронізує теку /workspace/apps перед виконанням копіювання на стороні DevKit.

Перевірте поточний метод підключення та синхронізації:

dk status

Увімкніть синхронізацію поточного робочого простору вручну:

dk sync

Синхронізуйте певний файл або теку:

dk sync /workspace/apps

Синхронізуйте весь робочий простір:

dk sync --all

Коли активовано резервний механізм rsync, зберігайте файли, необхідні для виконання однієї команди dk, в одній і тій самій головній теці робочого простору. Якщо команду запущено з /workspace/apps, аргументи, що вказують на /workspace/models, знаходяться поза межами автоматичної синхронізації, тому їх слід синхронізувати окремо за допомогою dk sync /workspace/models, або проєкт слід організувати таким чином, щоб необхідні файли зберігалися в одній і тій самій головній теці.

Запустіть на DevKit за допомогою dk.

SDK містить допоміжний інструмент dk, також відомий як devkit-run, для запуску виконуваних файлів ARM64 на з’єднаному DevKit зсередини оболонки SDK.

Коли ви викликаєте dk, SDK запускає команду на з’єднаному DevKit і перетворює шляхи, щоб аргументи файлів із контейнера правильно розпізнавалися на DevKit.

dk  [args...]

Після компіляції програми C++ у робочому просторі SDK запустіть згенерований виконуваний файл ARM64 на DevKit:

dk build/sima_neat_hello

Після створення або копіювання сценарію Python у робочу область SDK запустіть його на з’єднаному пристрої DevKit:

dk hello_neat.py

Для сценаріїв Python, dk запускає сценарій на з’єднаних DevKit і використовує DevKit PyNeat – середовище виконання. SDK залишається корисним як уніфікований робочий простір і середовище оркестрування, але для сценаріїв, які використовують лише Python, не потрібен інструментарій для крос-компіляції C++.

примітка
Звідки походить dk

dk — це функція оболонки, визначена у файлі ~/devkit-sync.rc всередині контейнера SDK. Оболонка завантажує її через файл ~/.bashrc, тому вона доступна в інтерактивних сесіях.

Наступний крок

Щоб встановити або оновити саму бібліотеку/середовище виконання, перейдіть до Neat Library.