Skip to content

Release v0.5.0

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Oct 08:30
7274b4e

Neat Library v0.5.0

Neat Library v0.5.0 adds nonblocking model input, configurable queue overflow, YOLOX segmentation and pose models, EV74 stereo depth, and an MLA-only PCIe route, and fixes several runtime and Python issues. It targets Platform 2.1.3.

Important: Native applications and plugins must be rebuilt against the v0.5.0 headers and libsima_neat.so.5. Python applications should reinstall the matching PyNeat package.

Highlights

Nonblocking model input

ModelRunner::try_push() submits input without blocking when the input queue is full, and returns whether the input was accepted (#846). PyNeat exposes the same behavior.

Configurable queue overflow

Queue nodes accept QueueOptions with an OverflowPolicy, so a pipeline can block, keep the latest frame, or drop incoming frames when a queue fills (#837).

YOLOX segmentation and pose

Packed YOLOX segmentation and pose exports decode through a dedicated BoxDecode family, with matching C++ and Python result types (#825).

EV74 stereo depth

CameraInput adds a camera profile and capture-buffer options, and a stereo-depth node runs on EV74 (#970).

PCIe

  • The PCIe host API adds an MLA-only route (#894).
  • The PCIe host lifecycle is more robust, and external memory use is documented (#920).
  • The PCIe host package installs its application skill (#913).

Runtime fixes

  • YOLOv5 raw detection heads decode natively (#822).
  • Zero-element tensors copy correctly, so an empty model output no longer crashes the host process (#865).
  • RTP-JPEG streams keep their frame end markers (#855).
  • Python releases the GIL during blocking ModelRunner pushes (#834).
  • Async runs report completion outcomes reliably (#875, with Internals v0.5.0).
  • Graphs that exceed EV74 capacity fail to load with an error instead of failing silently (with Internals v0.5.0).
  • DetessDequant keeps its tensor layout contract (#781).
  • EV74 teardown no longer races deferred cleanup (#923).

GenAI

  • GenAI forwards the LLiMa stable prefix boundary, so generated output starts at the first generated token (#886).
  • Embedded LLiMa performance summaries are suppressed (#864).

Installation

  • The installer configures I2C access for benchmark power telemetry (#823).
  • neat status reports the Model Compiler as missing when only an empty virtual environment exists (#797).
  • Model downloads use Model Zoo 2.1.3 (#789).

Breaking changes and migration

Rebuild native applications

The C++ ABI moves from 4 to 5 (libsima_neat.so.5). Model::Options, CameraInputOptions, and box-decode payload layouts changed. Rebuild C++ applications, plugins, and Python bindings against the v0.5.0 headers and runtime packages.

Check pipelines that use VideoRate

VideoRate now only drops frames to reach the target rate and no longer duplicates frames (#876). Input timestamps are preserved. Pipelines that relied on duplicated frames to fill a higher output rate must handle the lower frame count.

Expect asynchronous teardown

Run::stop() and Run::close() start teardown and may release resources after they return.

OverflowPolicy header

OverflowPolicy moved to policy/OverflowPolicy.h. pipeline/Run.h still includes it, so existing code compiles unchanged.

Upgrade matching runtime components

Use Neat Library v0.5.0 with Internals v0.5.0 and LLiMa v0.5.0.

Install

Install or update Neat Library with:

sima-cli neat install core@v0.5.0

To download only the PyNeat wheel:

sima-cli neat install core@v0.5.0 -t pyneat

Compatibility

  • Core package version: 0.5.0.
  • Compatible Platform release: 2.1.3.
  • Model Zoo release: 2.1.3.
  • Public C++ ABI: 5.
  • Matching Core, Internals, LLiMa, and PCIe artifacts are required for their corresponding workflows.

Contributors

@Onat-Inak, @shanguangzai, @florianvoss-commit, @dotimothy, @manuel-roldan, @aseem-kannal, @michaelschlosserx, @ajayrao-simaai

Full Changelog: v0.4.0...v0.5.0