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

Змінні середовища

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

Для отримання вичерпного списку, див. Інвентаризація змінних середовища.

Примітка: деякі параметри призначені лише для внутрішнього використання або тестування і можуть бути змінені. Вони включені сюди. оскільки вони використовуються в поточних кодових шляхах.

Веб-доступ до SDK.​

У Palette SDK 3.0 або новіших версіях команда sima-cli sdk setup задає CODE_SERVER_PASSWORD у середовищі контейнера. Повторно запустіть neat, щоб переглянути пароль, і введіть його на запит code-server. URL не містять пароля чи токена. neat --json додає codeUI з полями backend, auth, password, localUrl і remoteUrl; цей вивід містить облікові дані. Опублікований порт codeUIHttps.host із карти портів SDK має пріоритет над портом контейнера.

Поведінка визначається встановленим виконуваним файлом code-server; саме лише встановлення CODE_SERVER_PASSWORD не змінює поведінку старого OpenVSCode. CODE_SERVER_HTTPS_PORT і CODE_SERVER_WORKSPACE мають пріоритет над старими змінними. За CODE_SERVER_WITHOUT_PASSWORD=1 повертається auth: "none" без значення пароля. Старі образи OpenVSCode зберігають URL із токенами.

  • NFS_SERVER_HOST_IP=<address> — адреса хоста SDK, яка використовується для побудови віддаленого з’єднання. Insight та URL-адреси VS Code, що відкриваються в браузері. Зазвичай це надається за допомогою sima-cli sdk setup.
  • CONTAINER_HOST_IP=<address> — застарілий механізм для визначення адреси віддаленого хоста. коли хост NFS_SERVER_HOST_IP недоступний.
  • OPENVSCODE_SERVER_HTTPS_PORT=<port> — HTTPS-порт для вебверсії VS Code. Якщо не встановлено, neat не відображає URL-адреси VS Code.
  • OPENVSCODE_SERVER_TOKEN=<token> — токен доступу до VS Code, який використовується в браузері. значення, згенероване sima-cli, є безпечним для використання в URL-адресах. Розглядайте URL-адреси, що містять цей токен, як конфіденційні дані та не поширюйте їх.
  • OPENVSCODE_WORKSPACE=<path> — робочий простір, відкритий у VS Code, що працює в браузері. (за замовчуванням /workspace).
  • OPENVSCODE_SERVER_WITHOUT_TOKEN=1 — запустіть і розгорніть VS Code у браузері. без аутентифікації за допомогою токенів. Використовуйте це лише в надійному локальному середовищі; ніколи не вмикайте цю опцію, якщо до сервісу є доступ із ненадійних мереж.

Уніфікований профіль налагодження (рекомендовано)​

  • SIMA_DEBUG_PROFILE=<components> — єдиний перемикач для ввімкнення налагодження, що застосовується до загальних діагностичних інструментів.
    • Компоненти: pipeline, graph, gst, appsink, inputstream або all.
    • Кілька компонентів можна розділити комами або пробілами (наприклад, pipeline,gst,inputstream).
  • SIMA_DEBUG_LEVEL=<0..3> — рівень деталізації виводу налагоджувальної інформації, що використовується у єдиному профілі (за замовчуванням 1).
    • 0: вимкнено
    • 1: основні журнали налагодження
    • 2: детальне відображення діагностичної інформації/відстеження на рівні буфера.
    • 3: максимальний рівень деталізації

Застарілі перемикачі для налагодження, які застосовуються до окремих змінних, все ще працюють і, якщо їх явно встановити, вони замінюють значення за замовчуванням, визначені в профілі.

Основна збірка/запуск.​

  • SIMA_PIPELINE_STRING_DEBUG=1 — виводьте остаточний рядок команди gst-launch під час збірки.
  • SIMA_PIPELINE_STATE_DEBUG=1 — додаткові журнали змін стану.
  • SIMA_PIPELINE_TEARDOWN_DEBUG=1 — веде журнали етапів завершення роботи конвеєра.
  • SIMA_PIPELINE_DRAIN_BEFORE_TEARDOWN_MS=<ms> — час, протягом якого відбувається очищення конвеєра перед його завершенням (за замовчуванням 1500).
  • SIMA_PIPELINE_DRAIN_MIN_OUTPUTS=<n> — мінімальна кількість вихідних даних, які потрібно обробити перед завершенням роботи конвеєра (за замовчуванням — 1).

Ініціалізація GStreamer + придушення.​

  • SIMA_ALLOW_GST_INIT=1 – дозволити ручне ініціювання gst_init, якщо воно вже було ініційовано.
  • SIMA_GST_SUPPRESS_JSON_WARNINGS=0/1 — приглушує попередження JSON (за замовчуванням — true).
  • SIMA_GST_SUPPRESS_GOBJECT_ASSERTS=0/1 — приглушує виведення повідомлень про помилки GLib (за замовчуванням увімкнено).
  • SIMA_GST_SUPPRESS_DEVICE_LOGS=0/1 — приховує журнали пристрою (за замовчуванням — увімкнено).

Тайм-аути GStreamer.​

  • SIMA_STATE_CHANGE_TIMEOUT_MS=<ms> — час очікування на зміну стану конвеєра (за замовчуванням 15000 мс).
  • SIMA_GST_TEARDOWN_TIMEOUT_MS=<ms> — час очікування перед завершенням роботи (за замовчуванням 2000 мс).
  • SIMA_GST_TEARDOWN_REAPER_MS=<ms> — час очікування перед завершенням роботи (за замовчуванням 250).
  • SIMA_GST_TEARDOWN_ASYNC=1 — асинхронне завершення роботи.
  • SIMA_GST_POLL_SLICE_MS=<ms> — інтервал опитування для отримання даних з appsink (за замовчуванням 200 мс).
  • Рекомендовані параметри API:
    • ValidateOptions.preroll_timeout_ms — час очікування перед початком відтворення в функції validate().
    • RunOptions.input_timeout_ms — очікування виходу для Graph::run() у вхідному режимі та підтримуваної попередньої перевірки побудови з початковими даними.
    • Run::run(..., timeout_ms) / Model::run(..., timeout_ms) — очікування виходу для окремого виклику; -1 означає відсутність обмеження, як у Run::pull(-1).
  • Застарілі змінні середовища, що використовуються як резервний варіант (використовуйте лише тоді, коли неможливо передати параметри):
    • SIMA_GST_VALIDATE_TIMEOUT_MS=<ms> — час очікування для функції validate() (за замовчуванням 2000/10000).
    • SIMA_GST_RUN_INPUT_TIMEOUT_MS=<ms> — резервне значення для наведених вище очікувань виходу Graph::run() / попередньої перевірки (за замовчуванням 10000 мс).

Діагностика + зонди​

  • SIMA_GST_DOT_DIR=<dir> — каталог для збереження DOT-графіків, що використовуються для аналізу помилок або налагодження конвеєра.
  • SIMA_GST_BOUNDARY_PROBES=1 — встановіть датчики для вимірювання потоку на межі.
  • SIMA_GST_STAGE_TIMINGS=1 — датчики для вимірювання часу проходження етапів.
  • SIMA_GST_ELEMENT_TIMINGS=1 — зонди для вимірювання часу роботи елементів.
  • SIMA_GST_FLOW_DEBUG=1 — зонди для відстеження потоку елементів.
  • SIMA_GST_ENFORCE_NAMES=1 — забезпечує дотримання правил іменування під час збірки.
  • SIMA_GST_OPTIONS_DEBUG=1 — виводити в журнал параметри GStreamer під час збірки.
  • SIMA_GST_BUFFER_DEBUG_LIMIT=<n> — обмеження кількості виведених повідомлень налагодження для буфера.
  • SIMA_GST_DETESS_INPUT_DEBUG=1 — налагодження вхідних даних detess.
  • SIMA_GST_DETESS_OUTPUT_DEBUG=1 — налагодження виводу detess.
  • SIMA_GST_DETESS_POOL_DEBUG=1 — налагодження пулу detess.
  • SIMA_GST_APPSINK_BUFFER_DEBUG=1 — налагодження буфера appsink.
  • SIMA_GST_ALL_BUFFER_DEBUG=1 — детальне налагодження буфера.
  • SIMA_GST_RUN_INSERT_BOUNDARIES=1 — вставляти межі під час виконання функції run().
  • SIMA_GST_VALIDATE_INSERT_BOUNDARIES=1 — вставляти межі під час виконання validate().

Диспетчер / середовище виконання​

  • SIMA_DISPATCHER_TRACE=1 — відстеження етапів роботи диспетчера.
  • SIMA_ASYNC_TPUT_DIAG=1 — діагностика асинхронної пропускної здатності.
  • SIMA_ASYNC_WARMUP=<n> — кадри для асинхронного попереднього завантаження.
  • SIMA_PERF_POWER=1 — увімкнути збір даних про живлення плати із Sentinel під час тестування продуктивності.
  • SIMA_PERF_POWER_INTERVAL_MS=<ms> — застаріла й ігнорується; Sentinel збирає дані кожні 2 с.
  • SIMA_PULL_TIMEOUT_DIAG=0/1 — звіт про перевищення часу очікування під час отримання даних (за замовчуванням — увімкнено).
  • SIMA_STAGE_DEBUG=1 — Журнали налагодження StageRun.

Вхідний потік / Приклад налагодження​

  • SIMA_INPUTSTREAM_DEBUG=1 — детальне ведення журналів для класу InputStream.
  • SIMA_INPUTSTREAM_WARN=1 — попередження щодо подій, що виникають під час роботи з класом InputStream.
  • SIMA_INPUTSTREAM_POLL_MS=<ms> — інтервал опитування InputStream (за замовчуванням 50 мс).
  • SIMA_INPUTSTREAM_META_DEBUG=1 — виводити в журнал деталі GstSimaMeta.
  • SIMA_INPUTSTREAM_ALLOC_DEBUG=1 — налагодження виділення пам’яті.
  • SIMA_INPUTSTREAM_PUSH_TIMING=1 — журнали фіксують час виконання операції push.
  • SIMA_INPUTSTREAM_PREFLIGHT_RUN=1 — попередня перевірка для InputStream.
  • SIMA_SAMPLE_DEBUG=1 — ведіть журнали для відстеження прикладів конвертацій.
  • SIMA_SAMPLE_BYTES=1 — розміри зразків байтів для логування.
  • SIMA_SAMPLE_FORCE_BUNDLE=1 — примусовий вивід пакета для налагодження.
  • SIMA_NEAT_CAPS_TRACE=1 — обчислення тензорної похідної для визначення траси.

Попередня обробка / Виявлення / підключення​

  • SIMA_PREPROC_DEBUG_CONFIG=1 — вивести інформацію про конфігурацію попередньої обробки.
  • SIMA_KEEP_DETESS_CONFIG=1 — зберігати вихідні дані конфігурації detess.
  • SIMA_DETESS_ASSERT_ON_ZERO=1 — перевірка, що вихідні дані detess дорівнюють нулю.
  • SIMA_CLAMP_DETESS_NUM_BUFFERS=1 — обмеження кількості буферів для детектування.
  • SIMA_DISABLE_SYNC_NUMBUFFERS_CVU_MLA=1 — вимкнути обмеження кількості буферів синхронізації.

Модель (імена застарілих змінних середовища збережено)​

  • SIMA_MLA_NEXT_CPU=<domain> — перезаписує значення параметра MLA next_cpu.
  • SIMA_MPK_EXTRACT_ROOT=<dir> — базова директорія для завантаження архіву моделей. Визначається як абсолютний шлях. шлях визначається один раз для кожного процесу, тому шляхи, що використовуються в отриманому JSON, ніколи не залежать від робочого каталогу. Якщо вказано, і якщо до нього неможливо отримати доступ для запису, завантаження завершується помилкою, а не відбувається перехід до резервного варіанту. Якщо не вказано, базовим каталогом є перший доступний для запису кандидат серед змонтованих файлових систем NVMe, /data, TMPDIR, а потім – робочий каталог. Кандидат NVMe має бути блоковим пристроєм /dev/nvme*, доступним для запису, змонтованим у каталозі даних: кореневий каталог, /boot, /efi та інші системні точки монтування виключаються, як і файлові системи vfat/ISO. Ці перевірки застосовуються до виявлення NVMe; резервні варіанти для /data, TMPDIR і робочого каталогу зберігають свої звичайні правила розміщення у файловій системі. NVMe є кращим варіантом через великий обсяг пам’яті, передбачуване розміщення та уникнення записів на eMMC. Це не прискорює декодування: ця змінна визначає, куди записувати дані, а декодування обмежується обчислювальною потужністю процесора.

Вибір здійснюється на основі можливості запису, а не наявності вільного місця. Архів .tar.gz не обмежує розпакований розмір у жодному напрямку, тому неможливо визначити вимоги до обсягу пам’яті до декодування; обсяг пам’яті контролюється для кожного фрагмента під час розпакування та ще раз з маніфесту перед вилученням. Відповідно, відповідний NVMe використовується беззастережно, і якщо на ньому недостатньо місця, завантаження завершується помилкою output_storage_unavailable, а не відбувається перехід до eMMC. Вільне місце в цій файловій системі або SIMA_MPK_EXTRACT_ROOT, що вказує на інше місце, є рішенням.

  • SIMA_MPK_CLEANUP_EXTRACTED=0/1 — видаляти дані про витягнутий з архіву модель для кожного процесу під час звичайного завершення роботи (за замовчуванням 1). Коли ввімкнено очищення, кожен процес розпаковує свої файли в унікальну папку proc_run_*, захищену блокуванням, і видаляє її після завершення. Коли очищення вимкнено, ця папка зберігається для перевірки та виключається зі збору тимчасових файлів. Вона не виявляється та не використовується повторно іншим процесом; видаліть її вручну, коли вона більше не потрібна.

Model також приймає вже організовану папку, що містить etc, lib і share. Ця папка використовується безпосередньо, без декомпресії чи копіювання; програміст, який її надав, відповідає за її термін служби та повинен забезпечити, щоб вона не змінювалася під час використання моделі. Плоска папка, створена за допомогою tar -xzf, не є організованим пакетом і не може бути використана безпосередньо.

  • SIMA_MPK_EXTRACT_GC_STALE_PROC=0/1 — видаляти покинуті каталоги розпакування proc_run_* під час запуску, перевіряючи блокування власника (за замовчуванням 1). Старі каталоги proc_<pid> слід видаляти вручну, переконавшись, що вони більше не використовуються.
  • SIMA_MODEL_TAR=<path> — базовий шлях до пакунку моделі, який використовується в прикладах/тестах. Налаштування для окремих моделей (наприклад, SIMA_RESNET50_TAR, SIMA_YOLO_TAR тощо) все ще мають пріоритет.
  • SIMA_MPK_EXTRACT_MIN_FREE_BYTES=<bytes> — обсяг вільного місця, що резервується під час підготовки та вилучення архівів моделей (за замовчуванням 16 МіБ).
  • TMPDIR=<dir> — розглядається лише як пізній кандидат для використання в якості основи, і використовується безпосередньо для Підготовка даних здійснюється тими, хто викликає процес, і при цьому не обирає власну базову версію. Завантаження моделі більше не виконує підготовку даних незалежно: розпакований знімок і витягнутий пакет використовують обрану базову версію. Під час кожного завантаження, включно з перевіркою лише метаданих, файл .tar.gz розпаковується один раз у приватну директорію. Під час вилучення файлів, файлова система повинна мати достатньо місця для розпакованого знімка, пакета та SIMA_MPK_EXTRACT_MIN_FREE_BYTES; знімок еталонного пакета розміром 150 МБ становить приблизно 354 МБ. Використовуйте локальну файлову систему — завантаження не вдасться, якщо не вдасться зчитати вільний простір, що може статися, якщо використовується мережеве підключення, яке зникне. Директорія підготовки даних видаляється після завершення завантаження, як у разі успіху, так і в разі помилки; у разі несподіваного завершення процесу або відключення живлення вона може залишитися.

Зарезервований вільний простір, встановлений за допомогою SIMA_MPK_EXTRACT_MIN_FREE_BYTES, використовується за принципом «найкращих зусиль». Він перевіряється для кожного фрагмента під час розпакування, порівнюючи з вільним простором, про який повідомляє файлова система, тому інший процес, який одночасно записує дані, все ще може вичерпати вільний простір між перевірками; у цьому випадку завантаження завершиться з помилкою, вказуючи кількість записаних байтів і шлях, який використовувався.

RTSP / H264​

  • SIMA_H264_SDP_DUMP=<path> — зберегти дані H264 SDP у файл.
  • SIMA_H264_SPS_FIXUP_STREAM=<path> — внести зміни в SPS у потоці даних.

Тестування / внутрішні хуки.​

  • SIMA_TENSOR_MAPFAIL_DEBUG=1 — ведіть журнали щодо помилок відображення тензорів.

Кваліфікація метаданих ядер​

Стадії ProcessCVU типово виконуються через neatkernelrunner середовища виконання. Жодна опція збирання чи змінна середовища не вибирає старий зовнішній модуль ProcessCVU.

  • SIMA_CORE_COMPACT_METADATA=1 — дозволяє компактні метадані TensorSet і типізовані метадані поточного кадру на прямому з’єднанні runner-to-appsink з явним володінням після узгодження можливостей. Потребує відсутності несумісного спостерігача межі, налагодження чи потоку. Стандартні вимірювання часу стадій і елементів з явним володінням залишаються ввімкненими й підтримують обидва представлення. Непредставлені розширення зберігають попередні динамічні метадані.

Не приєднуйте перевірки, що підтримують лише старий формат, до компактного з’єднання. Без узгодження можливостей середовище виконання зберігає попередні метадані для невідомих споживачів і спостерігачів; виконання все одно використовує neatkernelrunner. Цей параметр метаданих не гарантує затримку чи пропускну здатність.

Кваліфікація пакетів і щотижневих перевірок (лише для тестів)​

  • SIMA_TEST_PACKAGE_INVENTORY=<absolute-path> — очікувані контрольні поля пакетів та ідентичність вмісту, створені з вибраних перевірених архівів дистрибутива через tools/ci/verify_core_dist.py --write-package-inventory. Потрібні тесту переліку встановлених пакетів DevKit. Не переспрямовують dpkg на приватний префікс і не є звітом про результат встановлення.
  • SIMA_TEST_PLATFORM_BASELINE=<absolute-path> — наявність і відсутність нативних платформних компонентів, ідентичності пакетів та доступність і ідентичність OTA, зняті перед встановленням через tools/ci/verify_core_dist.py --capture-platform-baseline. Потрібні тесту переліку встановлених пакетів DevKit поряд із вибраним переліком пакетів. Не відтворюйте цей початковий стан із післяінсталяційного стану.
  • SIMA_RUN_MNIST_PREPROC_CHANNELS1=1 — вмикає тривалий тест точності попередньої обробки MNIST. Отримайте це значення від tools/ci/prepare_weekly_fixtures.py після перевірки тестових даних, а не встановлюйте його лише для усунення пропуску. Локальні засоби запуску використовують --environment-json; CI використовує те саме відображення через --github-env.

Про вибір груп тестових даних і профілі встановлених пакетів див. Вимоги до тестування.

Стан хоста та карт PCIe​

NEAT_PCIE_SSH_USER вибирає користувача SSH карти (типово sima). NEAT_PCIE_SSH_KEY вибирає приватний ключ (типово ~/.ssh/sima_neat_pcie_ed25519); наявні налаштування SSH та автентифікація через агент також доступні. --offline пропускає перевірку оновлень через Інтернет, але читає підключені карти через локальний SSH. Перегляд стану хоста PCIe не перевіряє оновлення артефактів; для оновлення пакета хоста використовуйте sima-cli neat install core/pciehost/<distro>/<arch>@<ref>. neat update не оновлює карти PCIe.