Repository navigation
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
ModelRunnerpushes (#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 statusreports 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.0To download only the PyNeat wheel:
sima-cli neat install core@v0.5.0 -t pyneatCompatibility
- 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