Skip to main content

neat Namespace

Definition

namespace simaai::neat { ... }

Namespaces Index

namespacedebug
namespacedlpack

Minimal DLPack-shaped structs for zero-copy interop with NumPy/PyTorch. More...

namespaceerror_codes
namespacegenai
namespacegraph
namespaceinternal
namespacempk
namespacenodes
namespacepipeline_internal
namespacestages
namespacevalidators

Classes Index

structValidationContext

Context passed to contracts during validation. More...

classContract

A single validation rule applied to a NodeGroup. More...

classContractRegistry

Holds a set of Contracts and runs them to produce a ValidationReport. More...

structContractPortSpec

Per-port contract: the shape/type/segment requirements for one input or output. More...

structContractFieldSpec

Per-field contract: where the field value comes from and the override policy. More...

structNodeContractDefinition

Bundle of port and field specs that fully describes a Node's contract. More...

structValidationIssue

A single reported issue from a Contract. More...

classValidationReport

Report produced by running a ContractRegistry. More...

classModel

Loaded form of an MPK; the simplified entry point to run inference on Modalix. More...

structResizeSpec

Resize / letterbox / crop parameters. More...

structColorConvertSpec

Color-format conversion parameters. More...

structLayoutConvertSpec

Axis-permutation parameters for HWC↔CHW-style layout conversions. More...

structNormalizeSpec

Mean/stddev normalization parameters. More...

structQuantizeSpec

INT8 (or other low-precision) quantization parameters. More...

structTessellateSpec

MLA tessellation (tile-shuffle) parameters. More...

structPreprocessExplicitKnobs

Per-stage flags recording which preprocess fields the user set explicitly. More...

structTransform

Discriminated union of all per-stage transform specs. More...

structPreprocessOptions

User-facing preprocess intent — what the application asks for. More...

structPreprocessContract

Per-input contract describing what the preprocess stage expects to receive. More...

structPreprocessMetaContract

Metadata-side contract — names and fields the preprocess stage requires. More...

structResolvedPreprocessPlan

Final resolved plan — what the framework actually compiled and runs. More...

structPreparedRuntimeDescriptor
structGraphTensorContract
structGraphQuantContract
structGraphProcessMlaStageRequest
structGraphProcessCvuStageRequest
classFileInput

Wraps GStreamer's filesrc element — reads encoded media from a path on disk. More...

classImageDecode

Auto-detects and decodes still-image formats (JPEG, PNG, BMP, …) to raw video. More...

classJpegDecode

Decodes JPEG-encoded buffers to raw frames. More...

structOutputOptions

Buffering / sync options for the Output Node. More...

classOutput

Pull-side terminal sink. More...

classQueue

Wraps GStreamer's queue element — inserts a thread/buffer boundary. More...

classVideoConvert

Wraps GStreamer's videoconvert. More...

classVideoScale

Wraps GStreamer's videoscale. More...

classVideoTrackSelect

Creates a qtdemux element and selects a specific video pad (e.g., demux.video_0). More...

structPreprocessMetaTemplate

Preprocess metadata template attached to ingress buffers. More...

structInputOptions

Caps, buffering, and pool options for the Input Node. More...

classInput

Push-mode source Node. More...

structMetadataSenderOptions
classMetadataSender
classRTSPInput

RTSP source Node — pulls a stream from an RTSP URL. More...

classStillImageInput

Source Node that emits a single image as a continuous video stream. More...

structUdpOutputOptions

Destination + sync options for the UdpOutput Node. More...

classUdpOutput

UDP sink Node — writes packets to a UDP destination. More...

classH264CapsFixup

Helper Node that fills in missing H.264 RTP caps fields with fallbacks. More...

classH264Depacketize

Depayloads RTP-encapsulated H.264 into a raw H.264 byte stream. More...

structCastOptions

Construction options for a Cast Node. More...

classCast

CVU kernel Node that casts a tensor between FP32 and BF16 (no scale/zero-point). More...

structCastTessOptions

Construction options for a CastTess Node. More...

classCastTess

Fused CVU kernel Node: Cast (FP32→BF16) followed by Tess. More...

structDequantOptions

Construction options for a Dequant Node. More...

classDequant

CVU kernel Node that dequantizes INT8 tensors to FP32 using scale + zero-point. More...

structDetessOptions

Construction options for a Detess Node. More...

classDetess

CVU kernel Node that detessellates MLA-layout tensors back to natural HWC/CHW order. More...

structDetessCastOptions

Construction options for a DetessCast Node. More...

classDetessCast

Fused CVU kernel Node: Detess followed by Cast (BF16→FP32). More...

structDetessDequantOptions

Construction options for a DetessDequant Node. More...

classDetessDequant

Fused CVU kernel Node: Detess followed by Dequant (INT8→FP32). More...

classH264Decode

Hardware-accelerated H.264 decoder Node. More...

classH264EncodeSima

Hardware-accelerated H.264 encoder Node. More...

classH264Packetize

RTP H.264 payloader Node — wraps encoded H.264 into RTP packets. More...

structH264ParseOptions

Construction options for an H264Parse Node — config-interval and optional caps lock. More...

classH264Parse

H.264 stream parser Node — parses NAL units, finds keyframes, optionally locks caps. More...

structPCIeSinkOptions

Construction options for a PCIeSink Node. More...

classPCIeSink

Terminal sink Node that streams samples to a PCIe-connected host. More...

structPCIeSrcOptions

Construction options for a PCIeSrc Node. More...

classPCIeSrc

Source-role Node that receives samples from a PCIe-connected host. More...

structPreprocOptions

Construction options for a Preproc Node. More...

classPreproc

Fused CVU preprocessing Node — resize + color-convert + normalize (+ optional tess). More...

structQuantOptions

Construction options for a Quant Node. More...

classQuant

CVU kernel Node that quantizes FP32 tensors to INT8 using scale + zero-point. More...

structQuantTessOptions

Construction options for a QuantTess Node. More...

classQuantTess

Fused CVU kernel Node: Quant (FP32→INT8) followed by Tess. More...

structSimaArgMaxOptions

Construction options for a SimaArgMax Node. More...

classSimaArgMax

EV74 postprocess Node that emits the top-class index from a classification tensor. More...

classSimaBoxDecode

EV74 postprocess Node that decodes detection-head tensors into object boxes (with NMS). More...

structSimaRenderOptions

Construction options for a SimaRender Node. More...

classSimaRender

Node that renders bounding-box overlays onto a video frame. More...

structTessOptions

Construction options for a Tess Node. More...

classTess

CVU kernel Node that tessellates a natural-layout tensor into MLA tile geometry. More...

structBox

One axis-aligned detection produced by BoxDecode. More...

structBoxDecodeResult

Parsed BoxDecode output paired with its raw byte buffer. More...

structFormatSpec

Thin wrapper around FormatTag with implicit string conversions. More...

structProfilerKernelInvocation

One kernel-invocation telemetry event. More...

structProfilerMemcpySite

Aggregate counters for one instrumented memcpy site. More...

structProfilerKernelAggregate

Aggregated timings for one (backend, kernel, stage, slot) tuple. More...

structProfilerReport

Snapshot bundle returned by LatencyProfiler::finalize(). More...

structLatencyProfilerOptions

Construction options for LatencyProfiler. More...

classLatencyProfiler

Per-sample latency tracker; attach to a Run to capture timing telemetry. More...

structPowerRailConfig

Configuration for one PMBus rail exposed by a paged PMIC. More...

structPowerFieldReading

One scalar rail field read from a PMIC. More...

structPowerRailReading

Snapshot for one rail. More...

structPowerSnapshot

Point-in-time board power snapshot. More...

structPowerMonitorOptions

Options for a PowerMonitor. More...

structPowerFieldSummary

Summary statistics for one scalar rail field. More...

structPowerRailSummary

Summary statistics for one rail. More...

structPowerSummary

Aggregated power monitor result. More...

classPowerMonitor

Background SOM power sampler. More...

structRunAdvancedOptions

Advanced runtime tuning knobs (most users never set these). More...

structRunOptions

Per-Run runtime options. More...

structInputDropInfo

Diagnostic record for a dropped input frame. More...

structInputStreamStats

Per-Run input-side telemetry: counts, drops, and timing averages. More...

structRunStats

Per-Run end-to-end statistics: counts and latency. More...

structRunMeasurementSummary

One-call runtime measurement summary. More...

structRunStageStats

Per-stage timing telemetry — how long each stage takes per sample. More...

structRunElementTimingStats

Per-element timing — finer-grained than per-stage; one row per GStreamer element. More...

structRunElementFlowStats

Per-element data-flow telemetry — buffer and byte counts, plus caps changes. More...

structRunElementPadTimingStats

Per-pad timing — finest-grained telemetry, one row per (element, pad). More...

structRunDiagSnapshot

Aggregate diagnostic snapshot: stages, boundaries, per-element, per-pad. More...

structMeasureOptions

Options for framework-owned runtime measurement. More...

structMeasureLatencyStats

Percentile summary for a measured latency series. More...

structMeasurePluginLatency

Aggregated per-plugin/kernel timing captured during a measurement window. More...

structMeasureReport

Framework-owned report returned by MeasureScope::stop(). More...

classMeasureScope

Observation scope for measuring an application-owned push/pull interval. More...

structRunReportOptions

Toggles for what Run::report() includes in its formatted text output. More...

classRun

Live pipeline handle: push inputs in, pull outputs out. More...

structRuntimeMetricsOptions

Options controlling collection and rendering of runtime metrics. More...

structRuntimeLatencyMetrics

Basic latency summary in milliseconds. More...

structRuntimeCounters

Common input/output/drop counters. More...

structRuntimeMetricValue

Generic named scalar metric. More...

structRuntimeMetricGroup

Generic named metric group for adapter-specific diagnostics. More...

structRuntimeMetrics

Unified runtime metrics returned by Run, Model::Runner, GraphRun, and tools. More...

classRtspServerHandle

Live handle for a Session running in RTSP server mode. More...

classSession

The assembly stage — turns a list of Nodes into a runnable, deterministic pipeline. More...

classSessionError

Framework exception type carrying a structured SessionReport. More...

structVerboseOptions

Per-topic framework verbosity controls. More...

structRtspServerOptions

Options for Session::run_rtsp() — controls the RTSP server's mount point and ports. More...

structValidateOptions

Options for Session::validate(). More...

structProcessCvuOptions

Simple process-CVU backend placement for model pre/post stages. More...

structProcessMlaOptions

process-MLA execution options. More...

structPreparedRunnerOptions

Experimental prepared-route runner options. More...

structSessionOptions

Per-Session construction options. More...

structOutputTensorOptions

Options for Session::add_output_tensor() — the tensor-friendly output helper. More...

structPullError

Structured error returned by Run::pull() when status is Error. More...

structSample

Typed payload returned by Run::pull() and consumed by Run::push(). More...

structBusMessage

A single GStreamer bus message captured during pipeline build/run. More...

structBoundaryFlowStats

Per-boundary flow statistics — buffer counts at identity probes between Nodes. More...

structNodeReport

Per-Node entry in the report, listing what that Node produced in the GStreamer pipeline. More...

structBuildAdaptationAction

One line item from the build-adaptation log. More...

structBuildAdaptationSummary

Snapshot of build-time adaptation state — present for build(input) flows. More...

structSessionReport

Structured pipeline diagnostics — the framework's primary triage record. More...

structPcmAudio
structConversionCost

Cost estimate for a conversion: bytes moved + a coarse compute-class bucket (low/med/high). More...

structConversionTrace

Single audit-log entry for a conversion that occurred. More...

structConversionTraceCollector

Collects ConversionTrace entries for post-mortem auditing of a pipeline run. More...

structDevice

Device descriptor: type + numeric ID (for multi-device boards). More...

structImageSpec

Image-tensor metadata: pixel format and (optional) color space. More...

structAudioSpec

Audio-tensor metadata: sample rate, channel count, interleaving. More...

structTokensSpec

Token-tensor metadata for NLP-style tensors. More...

structTextSpec

UTF-8 text tensor metadata. More...

structEncodedSpec

Encoded-stream tensor metadata: which codec the bytes represent. More...

structByteStreamSpec

Opaque byte-stream tensor metadata. More...

structQuantSpec

Quantization metadata for INT8/INT16 tensors. More...

structTessSpec

Tessellation metadata — tile geometry for the MLA's tile-block layout. More...

structPreprocessRuntimeMeta

Per-buffer preprocessing context — the inverse-transform breadcrumb trail. More...

structSemantic

Discriminated union of "what this tensor represents". More...

structMapping

Scoped read/write window into a TensorBuffer. More...

structSegment

One named memory segment within a multi-segment tensor buffer (e.g., separate Y / UV planes). More...

structTensorBuffer

Storage handle for a tensor — opaque container for one of four backing memory kinds. More...

structPlane

One plane of a composite (multi-plane) tensor. More...

structNv12View

Non-owning view into NV12 pixel data: Y plane + interleaved UV plane. More...

structNv12Mapped

Bundles an NV12 view with the Mapping that keeps its underlying buffer alive. More...

structI420View

Non-owning view into I420 pixel data: separate Y, U, V planes. More...

structI420Mapped

Bundles an I420 view with the Mapping that keeps its underlying buffer alive. More...

structTensorRouteMeta

Routing metadata that travels with a tensor through multi-output pipelines. More...

structTensor

Universal tensor type — a labeled box of numbers that flows between Nodes. More...

structTensorConstraint

Declarative tensor contract — describes the shape/dtype/device/format a tensor must satisfy. More...

Typedefs Index

usingBusMessageFn = void(*)(const char *type, const char *src, const std::string &line, void *user_data)

Callback invoked for every bus message drained. More...

usingBusErrorFn = void(*)(const std::string &line, void *user_data)

Callback invoked when a bus error message is encountered. More...

usingTensorSpec = TensorConstraint

Tensor specification used by the Model API. More...

usingSampleList = std::vector< Sample >

Convenience alias for a list of Samples (multi-input/multi-output payloads). More...

usingTensorList = std::vector< Tensor >

Convenience alias for an ordered list of Tensors (multi-input/multi-output models). More...

usingByteFormat = ByteStreamSpec::ByteFormat

Convenience top-level alias for ByteStreamSpec::ByteFormat. More...

usingStorage = TensorBuffer

Alias for backward-compatibility. New code prefers TensorBuffer directly. More...

Enumerations Index

enum classMemoryContract { ... }

How a Node (or Session) wants buffer memory to be sourced/handed back. More...

enum classCapsMemory { ... }

Memory class to advertise in GStreamer caps. More...

enum classContractFieldSource { ... }

Where the value of a contract field originates. More...

enum classContractOverridePolicy { ... }

Whether the Builder may override a contract field at build time. More...

enum classValidationSeverity { ... }

Severity level for validation issues. More...

enum classAutoFlag { ... }

Tri-state knob: let the planner decide, force on, or force off. More...

enum classInputKind { ... }

What kind of input the user is feeding the preprocess pipeline. More...

enum classResizeMode { ... }

How the resize stage maps non-matching input dimensions to the model's input shape. More...

enum classPreprocessColorFormat { ... }

Color format hint for the color-convert stage. More...

enum classNormalizePreset { ... }

Common normalize presets — convenient shorthand for famous mean/stddev pairs. More...

enum classPreprocessGraphFamily { ... }

Which preprocess graph family the planner selected. More...

enum classTransformType { ... }

Which transformation a Transform represents — used in user-supplied transform lists. More...

enum classGraphTensorMaterializationKind : std::uint8_t { ... }
enum classInputMemoryPolicy { ... }

Where ingress buffers should be allocated when the application pushes samples. More...

enum classCastDirection { ... }

Direction of the BF16/FP32 conversion performed by a Cast Node. More...

enum classBoxDecodeType : std::int32_t { ... }

Decode families accepted by the BoxDecode backend. More...

enum classBoxDecodeTypeOption : std::int32_t { ... }

Tensor packing/layout option within a decode family. More...

enum classFormatTag { ... }

Identifies a media or tensor payload format. More...

enum classPowerMonitorProfile { ... }

Named board-level power monitor profiles. More...

enum classOverflowPolicy { ... }

What push() does when the input queue is full. More...

enum classRunPreset { ... }

Convenience preset bundles for RunOptions. More...

enum classOutputMemory { ... }

How output Tensors relate to the underlying GStreamer buffers. More...

enum classRuntimeMetricsFormat { ... }

Output format for runtime metrics reports. More...

enum classVerbosityLevel { ... }

Coarse-grained framework verbosity selector. More...

enum classRunMode { ... }

Timing mode a Run operates in. More...

enum classSampleKind { ... }

What kind of payload a Sample carries. More...

enum classPullStatus { ... }

Result status of Run::pull(). More...

enum classConversionKind { ... }

What kind of transformation a tensor conversion represents. More...

enum classConversionPolicy { ... }

How strict the framework is about implicit tensor conversions. More...

enum classDeviceType { ... }

Where a tensor's data lives — which processor can read it directly. More...

enum classStorageKind { ... }

How a TensorBuffer's memory was acquired and how to access it. More...

enum classTensorMemory { ... }

Placement for Tensor creators that materialize owned storage. More...

enum classPlaneRole { ... }

Role of a plane within a composite (multi-plane) tensor. More...

enum classMapMode { ... }

Access mode for TensorBuffer::map(). More...

enum classTensorDType { ... }

Element data type of a tensor. More...

enum classTensorAxisSemantic : uint8_t { ... }

Per-axis semantic tag — the long-term layout vocabulary. More...

enum classTensorLayout { ... }

Transition-only coarse layout token (HWC / CHW / HW). More...

Operators Index

std::ostream &operator<< (std::ostream &os, const FormatSpec &spec)

Stream-insert the canonical string form of spec. More...

Functions Index

const char *to_string (ValidationSeverity s)

Stable string label for a ValidationSeverity (for reports/logs). More...

std::stringgst_message_to_string (GstMessage *msg)

Format a single GStreamer bus message into a stable, one-line string. More...

voiddrain_bus (GstElement *pipeline, BusMessageFn on_message, void *user_data)

Drain pending messages from the pipeline's bus, invoking on_message for each. More...

voidthrow_if_bus_error (GstElement *pipeline, BusMessageFn on_message, void *user_data, BusErrorFn on_error, void *error_user_data)

Drain the bus and throw a SessionError if any error message is found. More...

boolelement_exists (const char *factory)

Returns true if a GStreamer element factory with factory name is registered. More...

boolelement_property_exists (const char *factory, const char *property_name)

Returns true if factory exists and exposes a property named property_name. More...

std::stringfactory_plugin_path (const char *factory)

Returns the filesystem path of the plugin .so providing factory, or empty if unknown. More...

voidrequire_element (const char *factory, const char *context)

Throw a SessionError if factory is not registered. More...

voidrequire_tensordecoder (const char *context)

Throw a SessionError if SiMa's tensordecoder element is not available. More...

voidgst_init_once ()

Initialize GStreamer exactly once across the process. More...

boolprepare_processmla_runtime_config (ProcessMlaRuntimeConfig *runtime_cfg, std::string *error_message=nullptr)
boolbuild_graph_processmla_prepared_stage (const GraphProcessMlaStageRequest &request, simaai::gst::ProcessMlaPreparedStage *out, std::string *error_message=nullptr)
boolbuild_graph_processcvu_prepared_stage (const GraphProcessCvuStageRequest &request, simaai::gst::ProcessCvuPreparedStage *out, std::string *error_message=nullptr)
boolbuild_prepared_stage_from_manifest_context (const GstContext *static_manifest_context, const char *stage_id_or_name, const char *element_name_fallback, simaai::gst::PreparedStageSpec *out, std::string *error_message=nullptr)
boolattach_prepared_runtime_context (GstElement *pipeline, PreparedRuntimeDescriptor prepared_runtime, std::string *error_message=nullptr)
constexpr const char *box_decode_type_token (BoxDecodeType type)

Stable lower-case token for a decode family (used in caps, manifests, logs). More...

constexpr const char *box_decode_type_option_token (BoxDecodeTypeOption option)

Stable lower-case token for a decode-layout option. More...

constexpr boolbox_decode_type_is_yolo_family (BoxDecodeType type)

True iff type is one of the YOLO-family detection or segmentation variants. More...

constexpr boolbox_decode_type_is_segmentation (BoxDecodeType type)

True iff type is a segmentation variant (carries a mask head). More...

constexpr const char *box_decode_type_contract_summary (BoxDecodeType type)

Human-readable summary of type's tensor contract, used in API/docs/error surfaces. More...

std::vector< Box >parse_bbox_bytes (const std::vector< uint8_t > &bytes, int img_w, int img_h, int expected_topk, bool strict)

Parse a packed BBOX byte payload into typed Box records. More...

BoxDecodeResultdecode_bbox_tensor (const simaai::neat::Tensor &tensor, int img_w, int img_h, int expected_topk, bool strict)

Decode a BBOX-format Tensor into a BoxDecodeResult. More...

simaai::neat::EncodedSpec::Codeccaps_to_codec (const std::string &caps_string)

Map a GStreamer-style caps string to an EncodedSpec::Codec value. More...

Samplemake_encoded_sample (std::vector< uint8_t > bytes, std::string caps_string, int64_t pts_ns=-1, int64_t dts_ns=-1, int64_t duration_ns=-1)

Build an encoded Sample from raw bytes and caps metadata. More...

const char *format_tag_name (FormatTag tag)

Stable, canonical string token for tag (empty string for Auto). More...

std::stringformat_tag_to_string (FormatTag tag)

std::string form of the canonical format token. More...

std::stringupper_copy_ascii (std::string value)

ASCII upper-case copy of value (does not touch non-ASCII bytes). More...

booltensor_format_is_bf16_alias (std::string value)

True iff value names BF16 (any of BF16, BFLOAT16, EVXX_BF16, EVXX_BFLOAT16). More...

booltensor_format_is_fp32_alias (std::string value)

True iff value names FP32 (FP32, FLOAT32, EVXX_FLOAT32). More...

booltensor_format_is_int8_alias (std::string value)

True iff value names INT8 (INT8, EVXX_INT8). More...

booltensor_format_is_int16_alias (std::string value)

True iff value names INT16 (INT16, EVXX_INT16). More...

booltensor_format_is_int32_alias (std::string value)

True iff value names INT32 (INT32, EVXX_INT32). More...

std::stringnormalize_tensor_caps_format (std::string value)

Normalize tensor format aliases to the canonical EVXX_* token. More...

std::stringnormalize_caps_format_for_media (std::string media_type, std::string format)

Normalize a caps-format string conditionally on its media type. More...

FormatTagformat_tag_from_string (const std::string &value)

Parse a string token to a FormatTag; unknown values map to Auto. More...

boolis_raw_video_format (FormatTag tag)

True iff tag names a raw (uncompressed) video format. More...

boolis_tensor_payload_format (FormatTag tag)

True iff tag names a tensor payload (MLA, BBOX, ARGMAX, dtype kinds, EVXX aliases). More...

std::vector< PowerRailConfig >default_modalix_som_power_rails ()

Default Modalix SOM PMIC rail table from the board measurement scripts. More...

std::vector< PowerRailConfig >default_modalix_dvt_power_rails ()

Default Modalix DVT PMIC rail table. More...

PowerMonitorProfiledetect_default_power_monitor_profile ()

Detect the most likely built-in board power profile for the current host. More...

std::stringpower_monitor_profile_name (PowerMonitorProfile profile)

Human-readable name for a power monitor profile. More...

std::vector< PowerRailConfig >power_rails_for_profile (PowerMonitorProfile profile)

Resolve a built-in board profile to its rail table. More...

PowerMonitorOptionsboard_power_monitor_options (int sample_interval_ms=100, PowerMonitorProfile profile=PowerMonitorProfile::Auto)

Convenience options enabling board power monitoring with optional auto-detect. More...

PowerMonitorOptionsmodalix_som_power_monitor_options (int sample_interval_ms=100)

Convenience options enabling Modalix SOM power monitoring. More...

PowerMonitorOptionsmodalix_dvt_power_monitor_options (int sample_interval_ms=100)

Convenience options enabling Modalix DVT power monitoring. More...

PowerSnapshotread_power_snapshot (const PowerMonitorOptions &options)

Read one immediate power snapshot using native Linux I2C access. More...

std::stringformat_power_summary (const PowerSummary &summary)

Format a compact human-readable power summary. More...

std::stringpower_summary_to_json (const PowerSummary &summary, int indent=2)

Format power summary as a JSON object. More...

std::stringformat_runtime_metrics (const RuntimeMetrics &metrics, RuntimeMetricsFormat format=RuntimeMetricsFormat::Text)

Render runtime metrics in the requested format. More...

std::stringruntime_metrics_to_json (const RuntimeMetrics &metrics, int indent=0)

Render runtime metrics as JSON. More...

std::stringruntime_metrics_to_text (const RuntimeMetrics &metrics)

Render runtime metrics as human-readable text. More...

std::stringruntime_metrics_to_compact_text (const RuntimeMetrics &metrics)

Render runtime metrics as one compact line. More...

Samplemake_tensor_sample (const std::string &port_name, simaai::neat::Tensor tensor)

Construct a TensorSet-kind Sample wrapping a single Tensor for the named port. More...

Samplemake_bundle_sample (std::initializer_list< Sample > fields)

Construct a Bundle-kind Sample whose payload is the given list of inner Samples. More...

boolsample_is_multi_output (const Sample &sample)

Returns true if the sample carries multiple outputs (Bundle, or TensorSet with size > 1). More...

boolsample_has_tensor_list (const Sample &sample)

Returns true if the sample is a TensorSet with at least one tensor. More...

TensorList &sample_tensor_list (Sample &sample, const char *where=nullptr)

Mutable reference to the sample's tensor list. Throws SessionError if kind != TensorSet. More...

const TensorList &sample_tensor_list (const Sample &sample, const char *where=nullptr)

Const reference to the sample's tensor list. Throws SessionError if kind != TensorSet. More...

Tensor &require_single_tensor (Sample &sample, const char *where=nullptr)

Returns the sample's single Tensor; throws if the sample carries 0 or >1 tensors. More...

const Tensor &require_single_tensor (const Sample &sample, const char *where=nullptr)

Const variant of require_single_tensor. More...

TensorListtensors_from_sample (const Sample &sample, bool require_nonempty=true)

Extract all tensors from any sample shape (Tensor, TensorSet, Bundle); flattens recursively. More...

Samplesample_from_tensors (const TensorList &tensors)

Construct a TensorSet sample from a list of tensors. More...

Tensorfrom_gst_sample (GstSample *sample)
PcmAudiotensor_to_pcm_audio (const Tensor &tensor)
ConversionCostestimate_conversion_cost (ConversionKind kind, std::uint64_t bytes_copied)

Estimate the cost (bytes + compute class) of a conversion of the given kind moving bytes_copied bytes. More...

boolconversion_allowed (ConversionPolicy policy, ConversionKind kind)

Returns true if the policy allows a conversion of this kind (without performing it). More...

std::shared_ptr< TensorBuffer >make_cpu_owned_storage (std::size_t size_bytes)

Allocate a CPU-owned heap buffer of size_bytes, initialized to zero. More...

std::shared_ptr< TensorBuffer >make_cpu_external_storage (void *data, std::size_t size_bytes, std::shared_ptr< void > holder={}, bool read_only=true)

Wrap a foreign CPU pointer as a TensorBuffer without copying. More...

boolis_tessellated_int8_format (const std::string &fmt)

True iff fmt names an INT8 tessellated tensor format string. More...

boolis_tessellated_bf16_format (const std::string &fmt)

True iff fmt names a BF16 tessellated tensor format string. More...

Typedefs

BusErrorFn

using simaai::neat::BusErrorFn = typedef void (*)(const std::string& line, void* user_data)

Callback invoked when a bus error message is encountered.

Definition at line 36 of file GstBusWatch.h.

36using BusErrorFn = void (*)(const std::string& line, void* user_data);

BusMessageFn

using simaai::neat::BusMessageFn = typedef void (*)(const char* type, const char* src, const std::string& line, void* user_data)

Callback invoked for every bus message drained.

Parameters
type

GStreamer message type as a stable string (e.g., "warning", "info").

src

Name of the element that posted the message, or empty.

line

Pre-formatted single-line summary of the message.

user_data

Opaque pointer the caller registered.

Definition at line 32 of file GstBusWatch.h.

33 void* user_data);

ByteFormat

using simaai::neat::ByteFormat = typedef ByteStreamSpec::ByteFormat

Convenience top-level alias for ByteStreamSpec::ByteFormat.

Definition at line 216 of file TensorCore.h.

SampleList

using simaai::neat::SampleList = typedef std::vector<Sample>

Convenience alias for a list of Samples (multi-input/multi-output payloads).

Definition at line 463 of file SessionOptions.h.

463using SampleList = std::vector<Sample>;

Storage

using simaai::neat::Storage = typedef TensorBuffer

Alias for backward-compatibility. New code prefers TensorBuffer directly.

Definition at line 461 of file TensorCore.h.

TensorList

using simaai::neat::TensorList = typedef std::vector<Tensor>

Convenience alias for an ordered list of Tensors (multi-input/multi-output models).

Definition at line 23 of file Tensor.h.

23using TensorList = std::vector<Tensor>;

TensorSpec

using simaai::neat::TensorSpec = typedef TensorConstraint

Tensor specification used by the Model API.

Definition at line 47 of file Model.h.

Enumerations

AutoFlag

enum class AutoFlag
strong

Tri-state knob: let the planner decide, force on, or force off.

Enumeration values
AutoPlanner decides based on model contract and inputs (= 0)
OnForce this stage on (= 1)
OffForce this stage off (= 2)

Used pervasively across PreprocessOptions so the application can express "I don't care, do the right thing" (Auto) without losing the ability to override.

Definition at line 32 of file PreprocessPlan.h.

32enum class AutoFlag {
33 Auto = 0,
34 On = 1,
35 Off = 2,
36};

BoxDecodeType

enum class BoxDecodeType : std::int32_t
strong

Decode families accepted by the BoxDecode backend.

Enumeration values
UnspecifiedSentinel: no decode family selected (fails fast at runtime) (= 0)
YoloGeneric YOLO family token (= 1)
YoloV5YOLOv5 detection (= 2)
YoloV5SegYOLOv5 segmentation (= 3)
YoloV7YOLOv7 detection (= 4)
YoloV7SegYOLOv7 segmentation (= 5)
YoloV8YOLOv8 detection (= 6)
YoloV8SegYOLOv8 segmentation (= 7)
YoloV8PoseYOLOv8 pose-estimation heads (= 8)
YoloV9YOLOv9 detection (= 9)
YoloV9SegYOLOv9 segmentation (= 10)
YoloV10YOLOv10 detection (= 11)
YoloV10SegYOLOv10 segmentation (= 12)
DetrDETR-style transformer detection (= 13)
EffDetEfficientDet detection (= 14)
RcnnStage1Region-proposal stage of two-stage R-CNN models (= 15)
CenternetCenterNet keypoint-style detection (= 16)
YoloV26YOLO26 detection (raw l/t/r/b distance heads) (= 17)

Unspecified is an internal unset sentinel and must fail fast before runtime decode. Most YOLO-family variants share the same class-inference contract in genericboxdecode_v2:

  • decoupled heads: repeated class-depth tensors, class depth > 4
  • packed heads: depth = 3 * (num_classes + 5), consistent across heads YoloV26 uses decoupled 4-channel raw l/t/r/b bbox heads paired with class heads.

Definition at line 33 of file BoxDecodeType.h.

33enum class BoxDecodeType : std::int32_t {
34 // Internal sentinel; runtime decode requires a concrete value.
35 Unspecified = 0,
36 // YOLO-family (generic token).
37 Yolo = 1,
38 YoloV5 = 2,
39 YoloV5Seg = 3,
40 YoloV7 = 4,
41 YoloV7Seg = 5,
42 YoloV8 = 6,
43 YoloV8Seg = 7,
44 YoloV8Pose = 8,
45 YoloV9 = 9,
46 YoloV9Seg = 10,
47 YoloV10 = 11,
48 YoloV10Seg = 12,
49 Detr = 13,
50 EffDet = 14,
51 RcnnStage1 = 15,
52 Centernet = 16,
53 YoloV26 = 17,
54};

BoxDecodeTypeOption

enum class BoxDecodeTypeOption : std::int32_t
strong

Tensor packing/layout option within a decode family.

Enumeration values
AutoBackend infers the layout from tensor shapes (= 0)
PackedPerHeadEach head holds a single packed tensor (box+obj+cls) (= 1)
InterleavedByHeadHeads interleaved within tensors (= 2)
GroupedByRoleTensors grouped by role (box, score, class) (= 3)
Split3InterleavedThree split tensors, head-interleaved (= 4)
Split3GroupedThree split tensors, grouped by role (= 5)
InterleavedByHeadProbabilityInterleaved-by-head, class scores as probabilities (= 6)
InterleavedByHeadLogitInterleaved-by-head, class scores as logits (= 7)
GroupedByRoleProbabilityGrouped-by-role, class scores as probabilities (= 8)
GroupedByRoleLogitGrouped-by-role, class scores as logits (= 9)

Some families admit multiple equivalent head layouts (packed vs interleaved, grouped by role, probability vs logit class scores). Auto lets the planner pick from observed tensor geometry; the explicit values force a particular decoding contract for ambiguous models.

Definition at line 66 of file BoxDecodeType.h.

CapsMemory

enum class CapsMemory
strong

Memory class to advertise in GStreamer caps.

Enumeration values
AnyDon't constrain memory class in caps (= 0)
SystemMemoryForce caps to advertise memory:SystemMemory

Any means "don't constrain in caps"; SystemMemory forces the caps to carry memory:SystemMemory so upstream/downstream negotiation picks CPU-mappable buffers.

Definition at line 54 of file ContractTypes.h.

54enum class CapsMemory {
55 Any = 0,
57};

CastDirection

enum class CastDirection
strong

Direction of the BF16/FP32 conversion performed by a Cast Node.

Enumeration values
Bf16ToFp32Read BF16, emit FP32 (typical post-MLA path) (= 0)
Fp32ToBf16Read FP32, emit BF16 (typical pre-MLA path) (= 1)

Definition at line 30 of file Cast.h.

30enum class CastDirection {
31 Bf16ToFp32 = 0,
32 Fp32ToBf16 = 1,
33};

ContractFieldSource

enum class ContractFieldSource
strong

Where the value of a contract field originates.

Enumeration values
FixedValue is hard-coded in the contract definition
BuilderOptionValue comes from a builder-level option/argument
ModelOnlyValue is supplied by the model file (e.g., MPK manifest)
InputOnlyValue is determined by external input only
UpstreamOnlyValue is derived from the upstream Node's output spec
GraphOwnedValue is owned by the enclosing Graph (cross-Node)

Used by the Builder to decide whether a field is fully bound at definition time, supplied by a builder option, derived from upstream caps, baked into a model file, or owned by the Graph as a whole.

Definition at line 31 of file NodeContractDefinition.h.

ContractOverridePolicy

enum class ContractOverridePolicy
strong

Whether the Builder may override a contract field at build time.

Enumeration values
ForbiddenField cannot be overridden; attempts are validation errors
BuilderOnlyBuilder code may override; user-facing API may not

Definition at line 44 of file NodeContractDefinition.h.

47};

ConversionKind

enum class ConversionKind
strong

What kind of transformation a tensor conversion represents.

Enumeration values
ReinterpretSame bytes, different dtype/layout label. No memory traffic (= 0)
ViewPointer-arithmetic view (sub-tensor or strided slice). No copy
PackByte-level rearrangement in place (e.g., layout swap, packing)
ConvertElement-wise math conversion (e.g., FP32 → BF16, INT8 → FP32)
TransferCross-device transfer (e.g., CPU → accelerator scratch memory)

Ordered roughly cheapest-to-most-expensive: a Reinterpret is free (just a type/dtype relabel), a View is free (sub-tensor pointer arithmetic), a Pack rearranges bytes in-place, a Convert does math (e.g., FP32 → BF16), and a Transfer moves data across device boundaries (e.g., CPU → MLA scratchpad).

Definition at line 31 of file TensorConversion.h.

31enum class ConversionKind {
32 Reinterpret = 0,
33 View,
34 Pack,
35 Convert,
37};

ConversionPolicy

enum class ConversionPolicy
strong

How strict the framework is about implicit tensor conversions.

Enumeration values
StrictRefuse implicit conversions; require explicit user code (= 0)
AllowWithTraceAllow but record each conversion to a trace collector
AllowSilentAllow without tracking

Strict (default for many internal validations) refuses any implicit conversion; AllowWithTrace permits the conversion but records it to a ConversionTraceCollector for later auditing; AllowSilent permits without recording.

Definition at line 47 of file TensorConversion.h.

47enum class ConversionPolicy {
48 Strict = 0,
51};

DeviceType

enum class DeviceType
strong

Where a tensor's data lives — which processor can read it directly.

Enumeration values
CPUHost A65 (general-purpose CPU) (= 0)
SIMA_APUAudio Processing Unit
SIMA_CVUCompute/Vector Unit (EV74)
SIMA_MLAMachine Learning Accelerator
UNKNOWNPlacement not specified

The Modalix's heterogeneous compute is reflected here. CPU is the host A65; SIMA_CVU is the EV74 vector processor's accessible memory; SIMA_MLA is the ML accelerator's scratchpad; SIMA_APU is the audio processing unit. Tensors with the same buffer can sometimes be accessed from multiple devices (zero-copy via unified IOMMU); other times an explicit transfer is required.

Definition at line 57 of file TensorCore.h.

57enum class DeviceType {
58 CPU = 0,
62 UNKNOWN,
63};

FormatTag

enum class FormatTag
strong

Identifies a media or tensor payload format.

Enumeration values
AutoUnset / framework decides (= 0)
RGBPacked RGB, 8 bits per channel
BGRPacked BGR, 8 bits per channel (OpenCV default)
GRAY8Single-plane 8-bit grayscale
NV12YUV 4:2:0, Y plane + interleaved UV plane
I420YUV 4:2:0, three planes (Y, U, V)
YUYVYUV 4:2:2 packed (Y0 U Y1 V)
ENCODEDGeneric encoded payload (codec from caps)
H264H.264 access unit / NAL stream
ByteStreamOpaque byte stream; downstream interprets bytes by contract
MLAMLA-tessellated tensor payload
BBOXDecoded bounding-box byte stream
ARGMAXArgmax/segmentation map
DETESSDEQUANTDetessellated + dequantized tensor payload
FP32IEEE-754 32-bit float tensor
INT8Signed 8-bit integer tensor
UINT8Unsigned 8-bit integer tensor
BF16bfloat16 tensor
EVXX_FLOAT32EV-side alias for FP32
EVXX_INT8EV-side alias for INT8
EVXX_BFLOAT16EV-side alias for BF16

Used in caps strings and option fields throughout the pipeline. Auto is the unset sentinel (let the framework pick or sniff). The EVXX_ variants are aliases preferred by the EV74 caps surface.

See Also

FormatSpec

Definition at line 36 of file FormatSpec.h.

36enum class FormatTag {
37 Auto = 0,
38 RGB,
39 BGR,
40 GRAY8,
41 NV12,
42 I420,
43 YUYV,
44 ENCODED,
45 H264,
47 MLA,
48 BBOX,
49 ARGMAX,
51 FP32,
52 INT8,
53 UINT8,
54 BF16,
58};

GraphTensorMaterializationKind

enum class GraphTensorMaterializationKind : std::uint8_t
strong
Enumeration values
Unknown (= 0)
Direct (= 1)
OffsetView (= 2)
Bf16LaneSplitRepack (= 3)

Definition at line 19 of file PreparedRuntimeBridge.h.

19enum class GraphTensorMaterializationKind : std::uint8_t {
20 Unknown = 0,
21 Direct = 1,
22 OffsetView = 2,
24};

InputKind

enum class InputKind
strong

What kind of input the user is feeding the preprocess pipeline.

Enumeration values
AutoPlanner infers from caps / sample type (= 0)
ImageDecoded image (planar/packed pixels) (= 1)
TensorAlready-shaped tensor; preprocess is mostly a pass-through (= 2)

Definition at line 40 of file PreprocessPlan.h.

40enum class InputKind {
41 Auto = 0,
42 Image = 1,
43 Tensor = 2,
44};

InputMemoryPolicy

enum class InputMemoryPolicy
strong

Where ingress buffers should be allocated when the application pushes samples.

Enumeration values
AutoDefer to legacy / session-level target selection (= 0)
Ev74Allocate in EV74-visible memory
Dms0Allocate in DMS0 memory
SystemMemoryAllocate in plain system memory

Auto defers to legacy / session-level selection; the explicit values force a specific memory target.

Definition at line 62 of file Input.h.

62enum class InputMemoryPolicy {
63 Auto = 0,
64 Ev74,
65 Dms0,
67};

MapMode

enum class MapMode
strong

Access mode for TensorBuffer::map().

Enumeration values
ReadRead-only map; framework may skip cache invalidation if known clean (= 0)
WriteWrite-only map; framework may skip read-back; flushes cache on unmap
ReadWriteBoth directions; framework treats as full ownership transfer for the mapping's lifetime

Affects whether the framework treats the mapping as read or write.

Definition at line 122 of file TensorCore.h.

122enum class MapMode {
123 Read = 0,
124 Write,
125 ReadWrite,
127};

MemoryContract

enum class MemoryContract
strong

How a Node (or Session) wants buffer memory to be sourced/handed back.

Enumeration values
RequireSystemMemoryMappableMust be CPU-mappable (typically SystemMemory); violations are hard errors (= 0)
PreferDeviceZeroCopyPrefer device/zero-copy; runner may avoid forcing SystemMemory but still reports mismatches
AllowEitherButReportAllow either; if non-mappable, return empty payload with explicit reason + location

Drives the runner's behavior at output time and contributes to caps negotiation: requiring CPU-mappable memory forces a (potentially copying) conversion, while PreferDeviceZeroCopy lets the runner keep device memory whenever possible.

Definition at line 30 of file ContractTypes.h.

NormalizePreset

enum class NormalizePreset
strong

Common normalize presets — convenient shorthand for famous mean/stddev pairs.

Enumeration values
NoneUse the explicit mean/stddev fields (= 0)
ImageNetStandard ImageNet stats (= 1)
COCO_YOLOStats commonly used by YOLO-family detectors trained on COCO (= 2)

Definition at line 67 of file PreprocessPlan.h.

67enum class NormalizePreset {
68 None = 0,
69 ImageNet = 1,
70 COCO_YOLO = 2,
71};

OutputMemory

enum class OutputMemory
strong

How output Tensors relate to the underlying GStreamer buffers.

Enumeration values
Auto (= 0)
ZeroCopy
Owned

Auto lets the framework pick based on platform and pipeline shape. ZeroCopy shares storage with GStreamer (faster but lifetime-coupled to the Run). Owned copies into a framework-owned buffer (safer, slightly slower).

Definition at line 88 of file Run.h.

88enum class OutputMemory {
89 Auto = 0,
91 Owned,
92};

OverflowPolicy

enum class OverflowPolicy
strong

What push() does when the input queue is full.

Enumeration values
Blockpush() blocks until queue space frees up. Lossless. Use for batch processing (= 0)
KeepLatestDrop the oldest queued frame to make room
DropIncomingDrop the new frame; keep what's queued

The right choice depends on the input source — file batches want lossless, live cameras want freshness, network feeds with chokepoint pipelines want bounded memory.

Definition at line 59 of file Run.h.

59enum class OverflowPolicy {
60 Block = 0,
65};

PlaneRole

enum class PlaneRole
strong

Role of a plane within a composite (multi-plane) tensor.

Enumeration values
Unknown (= 0)
YLuminance plane
UChrominance-U plane (I420)
VChrominance-V plane (I420)
UVInterleaved chrominance plane (NV12)

Composite tensors carry their planes as separate Plane records. NV12 has Y + UV; I420 has Y + U + V; single-plane formats use the default Unknown.

Definition at line 112 of file TensorCore.h.

112enum class PlaneRole {
113 Unknown = 0,
114 Y,
115 U,
116 V,
117 UV,
118};

PowerMonitorProfile

enum class PowerMonitorProfile
strong

Named board-level power monitor profiles.

Enumeration values
AutoDetect from the running board model when possible
ModalixSomModalix SOM PMIC table from the board scripts
ModalixDvtModalix DVT stable single-PMIC power path
CustomCaller-provided explicit rail table

Definition at line 20 of file PowerTelemetry.h.

21 Auto,
24 Custom,
25};

PreprocessColorFormat

enum class PreprocessColorFormat
strong

Color format hint for the color-convert stage.

Enumeration values
AutoPlanner picks based on caps/contract (= 0)
RGBPacked 8-bit RGB (= 1)
BGRPacked 8-bit BGR (= 2)
GRAY88-bit single-channel grayscale (= 3)
NV12Y plane + interleaved UV plane (semi-planar 4:2:0) (= 4)
I420Y, U, V planes (planar 4:2:0) (= 5)

Definition at line 56 of file PreprocessPlan.h.

57 Auto = 0,
58 RGB = 1,
59 BGR = 2,
60 GRAY8 = 3,
61 NV12 = 4,
62 I420 = 5,
63};

PreprocessGraphFamily

enum class PreprocessGraphFamily
strong

Which preprocess graph family the planner selected.

Enumeration values
DisabledNo preprocess graph (model accepts raw tensors) (= 0)
PreprocPreprocess only; quant/tess happen inside the MLA (= 1)
QuantPreprocess + quant; tess happens inside the MLA (= 2)
TessPreprocess + tess; quant happens inside the MLA (= 3)
QuantTessPreprocess + quant + tess; nothing happens inside the MLA (= 4)

The four variants correspond to the four corners of the dtype-contract decision tree (BF16/INT8 × inside/outside MLA tess).

Definition at line 76 of file PreprocessPlan.h.

77 Disabled = 0,
78 Preproc = 1,
79 Quant = 2,
80 Tess = 3,
81 QuantTess = 4,
82};

PullStatus

enum class PullStatus
strong

Result status of Run::pull().

Enumeration values
OkA sample is available in the output parameter
TimeoutThe wait elapsed without a sample arriving
ClosedThe pipeline has reached EOS; no more samples will come
ErrorA runtime error occurred; check the optional PullError

Definition at line 349 of file SessionOptions.h.

349enum class PullStatus {
350 Ok,
351 Timeout,
352 Closed,
353 Error,
354};

ResizeMode

enum class ResizeMode
strong

How the resize stage maps non-matching input dimensions to the model's input shape.

Enumeration values
StretchAnisotropic scale to fit; aspect ratio not preserved (= 0)
LetterboxScale to fit while preserving aspect; pad the rest with pad_value (= 1)
CropCenter-crop to the target shape after isotropic scale (= 2)

Definition at line 48 of file PreprocessPlan.h.

48enum class ResizeMode {
49 Stretch = 0,
50 Letterbox = 1,
51 Crop = 2,
52};

RunMode

enum class RunMode
strong

Timing mode a Run operates in.

Enumeration values
AsyncContinuous pipeline; user pushes/pulls asynchronously
SyncOne frame in, one result out, synchronously

Async runs the pipeline continuously with internal worker threads; user code pushes and pulls at its own pace. Sync runs one frame at a time on the calling thread. Choose based on the input source: streaming sources → Async; one-shot/batch → Sync.

See Also

Run

Definition at line 192 of file SessionOptions.h.

192enum class RunMode {
193 Async,
194 Sync,
195};

RunPreset

enum class RunPreset
strong

Convenience preset bundles for RunOptions.

Enumeration values
RealtimeLow-latency; small queues; KeepLatest overflow; metrics off
BalancedDefault; moderate queues; Block overflow; metrics off
ReliableLossless; deeper queues; Block overflow; metrics on

Each preset adjusts queue depth, overflow policy, and metrics flags to a profile that's known to work well for one workload class.

Definition at line 74 of file Run.h.

74enum class RunPreset {
78};

RuntimeMetricsFormat

enum class RuntimeMetricsFormat
strong

Output format for runtime metrics reports.

Enumeration values
TextHuman-readable multi-line report
JsonJSON object suitable for tools
CompactTextOne-line headline summary

Definition at line 21 of file RuntimeMetrics.h.

22 Text,
23 Json,
25};

SampleKind

enum class SampleKind
strong

What kind of payload a Sample carries.

Enumeration values
TensorSingle tensor payload (the tensor field is set)
TensorSetMultiple tensors at one logical output index (the tensors field is set)
BundleRecursive: payload is a vector of Samples (the fields field is set)
UnknownDefault/uninitialized

The framework's outputs come in three shapes depending on the model's output topology: a single Tensor, a flat list of Tensors (TensorSet), or a recursive Bundle of Samples (Bundle, used by multi-logical-output models).

See Also

Sample

Definition at line 338 of file SessionOptions.h.

338enum class SampleKind {
339 Tensor,
340 TensorSet,
341 Bundle,
342 Unknown,
343};

StorageKind

enum class StorageKind
strong

How a TensorBuffer's memory was acquired and how to access it.

Enumeration values
CpuOwnedFramework allocated; freed when the storage refcount hits zero (= 0)
CpuExternalWraps a foreign pointer; lifetime tracked via holder
GstSampleReferences a GStreamer pool sample; refcounted via GStreamer
DeviceHandleLives in accelerator memory; CPU access requires an explicit transfer
Unknown

Determines the framework's strategy for map() and lifetime management. CpuOwned is the default — framework allocated, framework frees. CpuExternal wraps a foreign pointer (cv::Mat data, NumPy array, mmap'd file). GstSample carries a reference to a GStreamer buffer pool sample. DeviceHandle lives in accelerator memory (e.g., MLA scratchpad) and requires an explicit transfer for CPU access.

Definition at line 81 of file TensorCore.h.

81enum class StorageKind {
82 CpuOwned = 0,
87};

TensorAxisSemantic

enum class TensorAxisSemantic : uint8_t
strong

Per-axis semantic tag — the long-term layout vocabulary.

Enumeration values
UnknownAxis role not annotated (= 0)
NBatch axis
DDepth axis (5D tensors: batch + depth + spatial)
HHeight (spatial)
WWidth (spatial)
CChannel axis

Each axis of a tensor is tagged with a role: batch (N), depth (D), height (H), width (W), or channel (C). Together with shape and strides, this is the authoritative description of tensor layout and supersedes the coarse TensorLayout token for generic 3D/4D/5D tensors.

Definition at line 103 of file TensorTypes.h.

103enum class TensorAxisSemantic : uint8_t {
104 Unknown = 0,
105 N,
106 D,
107 H,
108 W,
109 C,
110};

TensorDType

enum class TensorDType
strong

Element data type of a tensor.

Enumeration values
UInt88-bit unsigned integer (typical pixel values)
Int88-bit signed integer (typical quantized weights/activations)
UInt1616-bit unsigned integer
Int1616-bit signed integer
Int3232-bit signed integer
BFloat1616-bit "brain float" (1 sign + 8 exponent + 7 mantissa bits) — MLA's FP path
Float32IEEE 754 single-precision (the user-facing default)
Float64IEEE 754 double-precision

Note: floating-point variants include BFloat16 (16-bit "brain float", same dynamic range as Float32), Float32, and Float64. Float16 (IEEE half) is intentionally omitted — the framework targets BF16 for the MLA's floating-point path; FP16 has no first-class path.

Definition at line 83 of file TensorTypes.h.

83enum class TensorDType {
84 UInt8,
85 Int8,
86 UInt16,
87 Int16,
88 Int32,
90 Float32,
91 Float64,
92};

TensorLayout

enum class TensorLayout
strong

Transition-only coarse layout token (HWC / CHW / HW).

Enumeration values
Unknown (= 0)
HWCHeight × Width × Channels (image-natural layout)
CHWChannels × Height × Width (PyTorch-natural layout)
HWHeight × Width (single-channel / grayscale)

This is not the long-term semantic truth for generic tensors. Internal tensor semantics should move toward shape + strides + explicit axis_semantics, with layout tokens remaining only at boundary/compatibility surfaces during the migration. Prefer TensorAxisSemantic for new code.

See Also

TensorAxisSemantic

Definition at line 122 of file TensorTypes.h.

122enum class TensorLayout {
123 Unknown = 0,
124 HWC,
125 CHW,
126 HW,
127};

TensorMemory

enum class TensorMemory
strong

Placement for Tensor creators that materialize owned storage.

Enumeration values
EV74 (= 0)
CPU
MLA
A65
Auto

The default for new owning creators is EV74: DDR allocated from the SiMa allocator in the EV74-addressable window (not EV74 VCCM). Use CPU for ordinary malloc-backed host tensors, or MLA for DMS0-backed tensors when the runtime allocator is available.

Definition at line 97 of file TensorCore.h.

97enum class TensorMemory {
98 EV74 = 0,
99 CPU,
100 MLA,
101 A65,
102 Auto,
103};

TransformType

enum class TransformType
strong

Which transformation a Transform represents — used in user-supplied transform lists.

Enumeration values
ResizeResize / letterbox / crop (= 0)
ColorConvertColor-format conversion (= 1)
LayoutConvertAxis permutation (e.g., HWC → CHW) (= 2)
NormalizeMean/stddev normalization (= 3)
QuantizeINT8 quantization (= 4)
TessellateMLA-tile reshuffle (= 5)

Definition at line 86 of file PreprocessPlan.h.

86enum class TransformType {
87 Resize = 0,
88 ColorConvert = 1,
89 LayoutConvert = 2,
90 Normalize = 3,
91 Quantize = 4,
92 Tessellate = 5,
93};

ValidationSeverity

enum class ValidationSeverity
strong

Severity level for validation issues.

Enumeration values
InfoInformational only; never blocks a run (= 0)
WarningSoft contract violation; pipeline may still run
ErrorHard contract violation; pipeline must not run

Definition at line 29 of file ValidationReport.h.

30 Info = 0,
31 Warning,
32 Error,
33};

VerbosityLevel

enum class VerbosityLevel
strong

Coarse-grained framework verbosity selector.

Enumeration values
QuietSuppress topic-specific messages; progress is controlled separately
ProductionConcise phase updates suitable for end users
VerboseRich human-facing diagnostics across all framework topics

Combined with the per-topic flags in VerboseOptions to decide what diagnostic output the framework emits at runtime. Most users pick one of the three preset factories on VerboseOptions (quiet(), production(), debug_all()) rather than setting flags by hand.

Definition at line 49 of file SessionOptions.h.

49enum class VerbosityLevel {
50 Quiet,
52 Verbose,
53};

Operators

operator<<()

std::ostream& simaai::neat::operator<< (std::ostream & os, const FormatSpec & spec)
inline

Stream-insert the canonical string form of spec.

Definition at line 332 of file FormatSpec.h.

332inline std::ostream& operator<<(std::ostream& os, const FormatSpec& spec) {
333 os << spec.str();
334 return os;
335}

Functions

attach_prepared_runtime_context()

bool simaai::neat::attach_prepared_runtime_context (GstElement * pipeline, PreparedRuntimeDescriptor prepared_runtime, std::string * error_message=nullptr)

Definition at line 120 of file PreparedRuntimeBridge.h.

board_power_monitor_options()

PowerMonitorOptions simaai::neat::board_power_monitor_options (int sample_interval_ms=100, PowerMonitorProfile profile=PowerMonitorProfile::Auto)

Convenience options enabling board power monitoring with optional auto-detect.

Definition at line 171 of file PowerTelemetry.h.

box_decode_type_contract_summary()

constexpr const char* simaai::neat::box_decode_type_contract_summary (BoxDecodeType type)
constexpr

Human-readable summary of type's tensor contract, used in API/docs/error surfaces.

Definition at line 205 of file BoxDecodeType.h.

206 switch (type) {
214 return "YOLO tensor contract: decoupled class heads (>4 channels, repeated across heads) or "
215 "packed heads (depth=3*(num_classes+5), consistent across heads).";
217 return "YOLO26 tensor contract: grouped raw l/t/r/b bbox heads (4 channels) paired "
218 "with repeated class-score heads (>4 channels).";
224 return "YOLO-seg contract: same class-depth rules as YOLO plus segmentation decode path.";
226 return "DETR contract: class channels inferred from max depth across heads; max depth must be "
227 ">4.";
231 return "Non-YOLO fallback contract: class channels inferred from max depth across heads; "
232 "max depth must be >4.";
234 default:
235 return "Unset decode type; runtime decode must fail fast until a concrete decode family is "
236 "selected.";
237 }
238}

box_decode_type_is_segmentation()

constexpr bool simaai::neat::box_decode_type_is_segmentation (BoxDecodeType type)
constexpr

True iff type is a segmentation variant (carries a mask head).

Definition at line 178 of file BoxDecodeType.h.

box_decode_type_is_yolo_family()

constexpr bool simaai::neat::box_decode_type_is_yolo_family (BoxDecodeType type)
constexpr

True iff type is one of the YOLO-family detection or segmentation variants.

Definition at line 151 of file BoxDecodeType.h.

152 switch (type) {
166 return true;
172 default:
173 return false;
174 }
175}

box_decode_type_option_token()

constexpr const char* simaai::neat::box_decode_type_option_token (BoxDecodeTypeOption option)
constexpr

Stable lower-case token for a decode-layout option.

Definition at line 123 of file BoxDecodeType.h.

124 switch (option) {
126 return "auto";
128 return "packed-per-head";
130 return "interleaved-by-head";
132 return "grouped-by-role";
134 return "split3-interleaved";
136 return "split3-grouped";
138 return "interleaved-by-head-probability";
140 return "interleaved-by-head-logit";
142 return "grouped-by-role-probability";
144 return "grouped-by-role-logit";
145 default:
146 return "auto";
147 }
148}

box_decode_type_token()

constexpr const char* simaai::neat::box_decode_type_token (BoxDecodeType type)
constexpr

Stable lower-case token for a decode family (used in caps, manifests, logs).

Definition at line 80 of file BoxDecodeType.h.

80constexpr const char* box_decode_type_token(BoxDecodeType type) {
81 switch (type) {
83 return "yolo";
85 return "yolov5";
87 return "yolov5-seg";
89 return "yolov7";
91 return "yolov7-seg";
93 return "yolov8";
95 return "yolov8-seg";
97 return "yolov8-pose";
99 return "yolov9";
101 return "yolov9-seg";
103 return "yolov10";
105 return "yolov10-seg";
107 return "yolo26";
109 return "detr";
111 return "effdet";
113 return "rcnn-stage1";
115 return "centernet";
117 default:
118 return "unspecified";
119 }
120}

build_graph_processcvu_prepared_stage()

bool simaai::neat::build_graph_processcvu_prepared_stage (const GraphProcessCvuStageRequest & request, simaai::gst::ProcessCvuPreparedStage * out, std::string * error_message=nullptr)

Definition at line 110 of file PreparedRuntimeBridge.h.

build_graph_processmla_prepared_stage()

bool simaai::neat::build_graph_processmla_prepared_stage (const GraphProcessMlaStageRequest & request, simaai::gst::ProcessMlaPreparedStage * out, std::string * error_message=nullptr)

Definition at line 106 of file PreparedRuntimeBridge.h.

build_prepared_stage_from_manifest_context()

bool simaai::neat::build_prepared_stage_from_manifest_context (const GstContext * static_manifest_context, const char * stage_id_or_name, const char * element_name_fallback, simaai::gst::PreparedStageSpec * out, std::string * error_message=nullptr)

Definition at line 114 of file PreparedRuntimeBridge.h.

caps_to_codec()

simaai::neat::EncodedSpec::Codec simaai::neat::caps_to_codec (const std::string & caps_string)

Map a GStreamer-style caps string to an EncodedSpec::Codec value.

Parameters
caps_string

GStreamer caps string (e.g., "video/x-h264, ...").

Returns

Matching codec enum, or the codec-unspecified sentinel if no match.

Definition at line 31 of file EncodedSampleUtil.h.

conversion_allowed()

bool simaai::neat::conversion_allowed (ConversionPolicy policy, ConversionKind kind)

Returns true if the policy allows a conversion of this kind (without performing it).

Definition at line 95 of file TensorConversion.h.

decode_bbox_tensor()

BoxDecodeResult simaai::neat::decode_bbox_tensor (const simaai::neat::Tensor & tensor, int img_w, int img_h, int expected_topk, bool strict)

Decode a BBOX-format Tensor into a BoxDecodeResult.

Convenience wrapper that maps the tensor, parses bytes via parse_bbox_bytes, and retains the raw byte view alongside the typed boxes.

Parameters
tensor

Tensor whose payload is a BBOX byte stream.

img_w

Original image width used to clamp/scale coordinates.

img_h

Original image height used to clamp/scale coordinates.

expected_topk

Number of detections expected (advisory; see strict).

strict

If true, mismatches against expected_topk throw.

Returns

Parsed detections plus retained raw bytes.

Definition at line 83 of file DetectionTypes.h.

default_modalix_dvt_power_rails()

std::vector<PowerRailConfig> simaai::neat::default_modalix_dvt_power_rails ()

Default Modalix DVT PMIC rail table.

DVT Linux PMBus access is intentionally limited to the verified stable reading: bus 4, PMIC 0x4d, page 0, POUT register 0x96, exponent -2.

Definition at line 146 of file PowerTelemetry.h.

default_modalix_som_power_rails()

std::vector<PowerRailConfig> simaai::neat::default_modalix_som_power_rails ()

Default Modalix SOM PMIC rail table from the board measurement scripts.

Definition at line 137 of file PowerTelemetry.h.

detect_default_power_monitor_profile()

PowerMonitorProfile simaai::neat::detect_default_power_monitor_profile ()

Detect the most likely built-in board power profile for the current host.

Definition at line 152 of file PowerTelemetry.h.

drain_bus()

void simaai::neat::drain_bus (GstElement * pipeline, BusMessageFn on_message, void * user_data)

Drain pending messages from the pipeline's bus, invoking on_message for each.

Non-blocking: pulls all messages currently posted, then returns. Safe to call from the framework's polling loop while the pipeline is running.

Parameters
pipeline

Pipeline whose bus to drain.

on_message

Callback invoked for each message (may be null).

user_data

Opaque pointer forwarded to on_message.

Definition at line 55 of file GstBusWatch.h.

element_exists()

bool simaai::neat::element_exists (const char * factory)

Returns true if a GStreamer element factory with factory name is registered.

Definition at line 20 of file GstHelpers.h.

element_property_exists()

bool simaai::neat::element_property_exists (const char * factory, const char * property_name)

Returns true if factory exists and exposes a property named property_name.

Definition at line 23 of file GstHelpers.h.

estimate_conversion_cost()

ConversionCost simaai::neat::estimate_conversion_cost (ConversionKind kind, std::uint64_t bytes_copied)

Estimate the cost (bytes + compute class) of a conversion of the given kind moving bytes_copied bytes.

Definition at line 93 of file TensorConversion.h.

factory_plugin_path()

std::string simaai::neat::factory_plugin_path (const char * factory)

Returns the filesystem path of the plugin .so providing factory, or empty if unknown.

Definition at line 26 of file GstHelpers.h.

format_power_summary()

std::string simaai::neat::format_power_summary (const PowerSummary & summary)

Format a compact human-readable power summary.

Definition at line 196 of file PowerTelemetry.h.

format_runtime_metrics()

std::string simaai::neat::format_runtime_metrics (const RuntimeMetrics & metrics, RuntimeMetricsFormat format=RuntimeMetricsFormat::Text)

Render runtime metrics in the requested format.

Definition at line 103 of file RuntimeMetrics.h.

format_tag_from_string()

FormatTag simaai::neat::format_tag_from_string (const std::string & value)
inline

Parse a string token to a FormatTag; unknown values map to Auto.

Definition at line 199 of file FormatSpec.h.

199inline FormatTag format_tag_from_string(const std::string& value) {
200 const std::string up = upper_copy_ascii(value);
201 if (up.empty())
202 return FormatTag::Auto;
203 if (up == "RGB")
204 return FormatTag::RGB;
205 if (up == "BGR")
206 return FormatTag::BGR;
207 if (up == "GRAY" || up == "GRAY8")
208 return FormatTag::GRAY8;
209 if (up == "NV12")
210 return FormatTag::NV12;
211 if (up == "I420" || up == "YUV420")
212 return FormatTag::I420;
213 if (up == "YUYV")
214 return FormatTag::YUYV;
215 if (up == "ENCODED")
216 return FormatTag::ENCODED;
217 if (up == "H264")
218 return FormatTag::H264;
219 if (up == "BYTESTREAM" || up == "BYTE_STREAM" || up == "BYTE-STREAM" || up == "RAW_BYTES" ||
220 up == "RAW-BYTES" || up == "OPAQUE_BYTES" || up == "OPAQUE-BYTES" || up == "OCTET_STREAM" ||
221 up == "OCTET-STREAM")
223 if (up == "MLA")
224 return FormatTag::MLA;
225 if (up == "BBOX")
226 return FormatTag::BBOX;
227 if (up == "ARGMAX")
228 return FormatTag::ARGMAX;
229 if (up == "DETESSDEQUANT")
231 if (up == "FP32")
232 return FormatTag::FP32;
233 if (up == "INT8")
234 return FormatTag::INT8;
235 if (up == "UINT8")
236 return FormatTag::UINT8;
237 if (up == "BF16" || up == "BFLOAT16")
238 return FormatTag::BF16;
239 if (up == "EVXX_BF16")
241 if (up == "EVXX_FLOAT32")
243 if (up == "EVXX_INT8")
245 if (up == "EVXX_BFLOAT16")
247 return FormatTag::Auto;
248}

format_tag_name()

const char* simaai::neat::format_tag_name (FormatTag tag)
inline

Stable, canonical string token for tag (empty string for Auto).

Definition at line 61 of file FormatSpec.h.

61inline const char* format_tag_name(FormatTag tag) {
62 switch (tag) {
64 return "";
66 return "RGB";
68 return "BGR";
70 return "GRAY8";
72 return "NV12";
74 return "I420";
76 return "YUYV";
78 return "ENCODED";
80 return "H264";
82 return "BYTESTREAM";
84 return "MLA";
86 return "BBOX";
88 return "ARGMAX";
90 return "DETESSDEQUANT";
92 return "FP32";
94 return "INT8";
96 return "UINT8";
98 return "BF16";
100 return "EVXX_FLOAT32";
102 return "EVXX_INT8";
104 return "EVXX_BFLOAT16";
105 }
106 return "";
107}

format_tag_to_string()

std::string simaai::neat::format_tag_to_string (FormatTag tag)
inline

std::string form of the canonical format token.

Definition at line 110 of file FormatSpec.h.

110inline std::string format_tag_to_string(FormatTag tag) {
111 return std::string(format_tag_name(tag));
112}

from_gst_sample()

Tensor simaai::neat::from_gst_sample (GstSample * sample)

Definition at line 18 of file TensorAdapters.h.

gst_init_once()

void simaai::neat::gst_init_once ()

Initialize GStreamer exactly once across the process.

Safe to call from multiple threads and multiple times — only the first call performs the actual gst_init(); subsequent calls return immediately.

Definition at line 22 of file GstInit.h.

gst_message_to_string()

std::string simaai::neat::gst_message_to_string (GstMessage * msg)

Format a single GStreamer bus message into a stable, one-line string.

Parameters
msg

The bus message to format. Must be non-null.

Returns

Human-readable summary suitable for logs and SessionReport.

Definition at line 43 of file GstBusWatch.h.

is_raw_video_format()

bool simaai::neat::is_raw_video_format (FormatTag tag)
inline

True iff tag names a raw (uncompressed) video format.

Definition at line 251 of file FormatSpec.h.

252 return tag == FormatTag::RGB || tag == FormatTag::BGR || tag == FormatTag::GRAY8 ||
253 tag == FormatTag::NV12 || tag == FormatTag::I420 || tag == FormatTag::YUYV;
254}

is_tensor_payload_format()

bool simaai::neat::is_tensor_payload_format (FormatTag tag)
inline

True iff tag names a tensor payload (MLA, BBOX, ARGMAX, dtype kinds, EVXX aliases).

Definition at line 257 of file FormatSpec.h.

258 return tag == FormatTag::ByteStream || tag == FormatTag::MLA || tag == FormatTag::BBOX ||
260 tag == FormatTag::INT8 || tag == FormatTag::UINT8 || tag == FormatTag::BF16 ||
263}

is_tessellated_bf16_format()

bool simaai::neat::is_tessellated_bf16_format (const std::string & fmt)

True iff fmt names a BF16 tessellated tensor format string.

Definition at line 20 of file TessellatedTensor.h.

is_tessellated_int8_format()

bool simaai::neat::is_tessellated_int8_format (const std::string & fmt)

True iff fmt names an INT8 tessellated tensor format string.

Definition at line 18 of file TessellatedTensor.h.

make_bundle_sample()

Sample simaai::neat::make_bundle_sample (std::initializer_list< Sample > fields)
inline

Construct a Bundle-kind Sample whose payload is the given list of inner Samples.

Definition at line 484 of file SessionOptions.h.

484inline Sample make_bundle_sample(std::initializer_list<Sample> fields) {
485 Sample out;
487 out.fields = fields;
488 return out;
489}

make_cpu_external_storage()

std::shared_ptr<TensorBuffer> simaai::neat::make_cpu_external_storage (void * data, std::size_t size_bytes, std::shared_ptr< void > holder={}, bool read_only=true)

Wrap a foreign CPU pointer as a TensorBuffer without copying.

Lifetime of the underlying memory is tracked via the holder shared_ptr — pass a custom deleter or a refcounted handle that keeps the original allocation alive. Set read_only to indicate the framework should not write through this storage.

Definition at line 472 of file TensorCore.h.

make_cpu_owned_storage()

std::shared_ptr<TensorBuffer> simaai::neat::make_cpu_owned_storage (std::size_t size_bytes)

Allocate a CPU-owned heap buffer of size_bytes, initialized to zero.

Definition at line 464 of file TensorCore.h.

make_encoded_sample()

Sample simaai::neat::make_encoded_sample (std::vector< uint8_t > bytes, std::string caps_string, int64_t pts_ns=-1, int64_t dts_ns=-1, int64_t duration_ns=-1)

Build an encoded Sample from raw bytes and caps metadata.

The returned Sample owns bytes (moved in) and carries the supplied caps string plus optional PTS/DTS/duration timestamps. Pass -1 to leave a timestamp unset.

Parameters
bytes

Encoded payload (e.g., H.264 access unit or NAL).

caps_string

Caps string describing the codec/profile.

pts_ns

Presentation timestamp in nanoseconds, or -1 if unknown.

dts_ns

Decode timestamp in nanoseconds, or -1 if unknown.

duration_ns

Frame duration in nanoseconds, or -1 if unknown.

Returns

A Sample wrapping the encoded payload with the supplied caps.

Definition at line 47 of file EncodedSampleUtil.h.

make_tensor_sample()

Sample simaai::neat::make_tensor_sample (const std::string & port_name, simaai::neat::Tensor tensor)
inline

Construct a TensorSet-kind Sample wrapping a single Tensor for the named port.

Definition at line 466 of file SessionOptions.h.

466inline Sample make_tensor_sample(const std::string& port_name, simaai::neat::Tensor tensor) {
467 Sample out;
469 out.stream_label = port_name;
470 out.tensors = TensorList{std::move(tensor)};
471 return out;
472}

modalix_dvt_power_monitor_options()

PowerMonitorOptions simaai::neat::modalix_dvt_power_monitor_options (int sample_interval_ms=100)

Convenience options enabling Modalix DVT power monitoring.

Definition at line 184 of file PowerTelemetry.h.

modalix_som_power_monitor_options()

PowerMonitorOptions simaai::neat::modalix_som_power_monitor_options (int sample_interval_ms=100)

Convenience options enabling Modalix SOM power monitoring.

Definition at line 178 of file PowerTelemetry.h.

normalize_caps_format_for_media()

std::string simaai::neat::normalize_caps_format_for_media (std::string media_type, std::string format)
inline

Normalize a caps-format string conditionally on its media type.

Tensor caps (application/vnd.simaai.tensor) are normalized to canonical EVXX_ tokens; other media types (raw video, encoded video) are returned unchanged.

Parameters
media_type

GStreamer-style media type (e.g., application/vnd.simaai.tensor).

format

Format string to potentially normalize.

Returns

Normalized format if applicable, otherwise format unchanged.

Definition at line 187 of file FormatSpec.h.

187inline std::string normalize_caps_format_for_media(std::string media_type, std::string format) {
188 if (format.empty()) {
189 return format;
190 }
191 const std::string media_up = upper_copy_ascii(std::move(media_type));
192 if (media_up == "APPLICATION/VND.SIMAAI.TENSOR") {
193 return normalize_tensor_caps_format(std::move(format));
194 }
195 return format;
196}

normalize_tensor_caps_format()

std::string simaai::neat::normalize_tensor_caps_format (std::string value)
inline

Normalize tensor format aliases to the canonical EVXX_* token.

Maps user-facing or legacy spellings (FP32/FLOAT32, BF16/BFLOAT16, INT8/16/32) onto the EV-side caps form. Unknown values are passed through unchanged.

Definition at line 157 of file FormatSpec.h.

157inline std::string normalize_tensor_caps_format(std::string value) {
158 if (tensor_format_is_fp32_alias(value)) {
159 return "EVXX_FLOAT32";
160 }
161 if (tensor_format_is_bf16_alias(value)) {
162 return "EVXX_BFLOAT16";
163 }
164 if (tensor_format_is_int8_alias(value)) {
165 return "EVXX_INT8";
166 }
168 return "EVXX_INT16";
169 }
171 return "EVXX_INT32";
172 }
173 return value;
174}

parse_bbox_bytes()

std::vector<Box> simaai::neat::parse_bbox_bytes (const std::vector< uint8_t > & bytes, int img_w, int img_h, int expected_topk, bool strict)

Parse a packed BBOX byte payload into typed Box records.

Parameters
bytes

Raw bytes (the BBOX caps payload).

img_w

Original image width used to clamp/scale coordinates.

img_h

Original image height used to clamp/scale coordinates.

expected_topk

Number of detections expected (advisory; see strict).

strict

If true, mismatches against expected_topk throw; if false, parse best-effort.

Returns

Parsed detections (size may be less than expected_topk).

Definition at line 67 of file DetectionTypes.h.

power_monitor_profile_name()

std::string simaai::neat::power_monitor_profile_name (PowerMonitorProfile profile)

Human-readable name for a power monitor profile.

Definition at line 158 of file PowerTelemetry.h.

power_rails_for_profile()

std::vector<PowerRailConfig> simaai::neat::power_rails_for_profile (PowerMonitorProfile profile)

Resolve a built-in board profile to its rail table.

Definition at line 164 of file PowerTelemetry.h.

power_summary_to_json()

std::string simaai::neat::power_summary_to_json (const PowerSummary & summary, int indent=2)

Format power summary as a JSON object.

Definition at line 202 of file PowerTelemetry.h.

prepare_processmla_runtime_config()

bool simaai::neat::prepare_processmla_runtime_config (ProcessMlaRuntimeConfig * runtime_cfg, std::string * error_message=nullptr)

Definition at line 103 of file PreparedRuntimeBridge.h.

read_power_snapshot()

PowerSnapshot simaai::neat::read_power_snapshot (const PowerMonitorOptions & options)

Read one immediate power snapshot using native Linux I2C access.

Definition at line 190 of file PowerTelemetry.h.

require_element()

void simaai::neat::require_element (const char * factory, const char * context)

Throw a SessionError if factory is not registered.

Parameters
factory

GStreamer element factory name (e.g., "h264parse").

context

Caller context interpolated into the error message (typically the Node kind).

Definition at line 33 of file GstHelpers.h.

require_single_tensor()

Tensor& simaai::neat::require_single_tensor (Sample & sample, const char * where=nullptr)

Returns the sample's single Tensor; throws if the sample carries 0 or >1 tensors.

Definition at line 507 of file SessionOptions.h.

require_single_tensor()

const Tensor& simaai::neat::require_single_tensor (const Sample & sample, const char * where=nullptr)

Const variant of require_single_tensor.

Definition at line 509 of file SessionOptions.h.

require_tensordecoder()

void simaai::neat::require_tensordecoder (const char * context)

Throw a SessionError if SiMa's tensordecoder element is not available.

Parameters
context

Caller context for the error message.

Definition at line 39 of file GstHelpers.h.

runtime_metrics_to_compact_text()

std::string simaai::neat::runtime_metrics_to_compact_text (const RuntimeMetrics & metrics)

Render runtime metrics as one compact line.

Definition at line 122 of file RuntimeMetrics.h.

runtime_metrics_to_json()

std::string simaai::neat::runtime_metrics_to_json (const RuntimeMetrics & metrics, int indent=0)

Render runtime metrics as JSON.

Definition at line 110 of file RuntimeMetrics.h.

runtime_metrics_to_text()

std::string simaai::neat::runtime_metrics_to_text (const RuntimeMetrics & metrics)

Render runtime metrics as human-readable text.

Definition at line 116 of file RuntimeMetrics.h.

sample_from_tensors()

Sample simaai::neat::sample_from_tensors (const TensorList & tensors)

Construct a TensorSet sample from a list of tensors.

Definition at line 513 of file SessionOptions.h.

sample_has_tensor_list()

bool simaai::neat::sample_has_tensor_list (const Sample & sample)
inline

Returns true if the sample is a TensorSet with at least one tensor.

Definition at line 498 of file SessionOptions.h.

498inline bool sample_has_tensor_list(const Sample& sample) {
499 return sample.kind == SampleKind::TensorSet && !sample.tensors.empty();
500}

sample_is_multi_output()

bool simaai::neat::sample_is_multi_output (const Sample & sample)
inline

Returns true if the sample carries multiple outputs (Bundle, or TensorSet with size > 1).

Definition at line 492 of file SessionOptions.h.

492inline bool sample_is_multi_output(const Sample& sample) {
493 return sample.kind == SampleKind::Bundle ||
494 (sample.kind == SampleKind::TensorSet && sample.tensors.size() > 1U);
495}

sample_tensor_list()

TensorList& simaai::neat::sample_tensor_list (Sample & sample, const char * where=nullptr)

Mutable reference to the sample's tensor list. Throws SessionError if kind != TensorSet.

Definition at line 503 of file SessionOptions.h.

sample_tensor_list()

const TensorList& simaai::neat::sample_tensor_list (const Sample & sample, const char * where=nullptr)

Const reference to the sample's tensor list. Throws SessionError if kind != TensorSet.

Definition at line 505 of file SessionOptions.h.

tensor_format_is_bf16_alias()

bool simaai::neat::tensor_format_is_bf16_alias (std::string value)
inline

True iff value names BF16 (any of BF16, BFLOAT16, EVXX_BF16, EVXX_BFLOAT16).

Definition at line 122 of file FormatSpec.h.

122inline bool tensor_format_is_bf16_alias(std::string value) {
123 const std::string up = upper_copy_ascii(std::move(value));
124 return up == "BF16" || up == "BFLOAT16" || up == "EVXX_BF16" || up == "EVXX_BFLOAT16";
125}

tensor_format_is_fp32_alias()

bool simaai::neat::tensor_format_is_fp32_alias (std::string value)
inline

True iff value names FP32 (FP32, FLOAT32, EVXX_FLOAT32).

Definition at line 128 of file FormatSpec.h.

128inline bool tensor_format_is_fp32_alias(std::string value) {
129 const std::string up = upper_copy_ascii(std::move(value));
130 return up == "FP32" || up == "FLOAT32" || up == "EVXX_FLOAT32";
131}

tensor_format_is_int16_alias()

bool simaai::neat::tensor_format_is_int16_alias (std::string value)
inline

True iff value names INT16 (INT16, EVXX_INT16).

Definition at line 140 of file FormatSpec.h.

140inline bool tensor_format_is_int16_alias(std::string value) {
141 const std::string up = upper_copy_ascii(std::move(value));
142 return up == "INT16" || up == "EVXX_INT16";
143}

tensor_format_is_int32_alias()

bool simaai::neat::tensor_format_is_int32_alias (std::string value)
inline

True iff value names INT32 (INT32, EVXX_INT32).

Definition at line 146 of file FormatSpec.h.

146inline bool tensor_format_is_int32_alias(std::string value) {
147 const std::string up = upper_copy_ascii(std::move(value));
148 return up == "INT32" || up == "EVXX_INT32";
149}

tensor_format_is_int8_alias()

bool simaai::neat::tensor_format_is_int8_alias (std::string value)
inline

True iff value names INT8 (INT8, EVXX_INT8).

Definition at line 134 of file FormatSpec.h.

134inline bool tensor_format_is_int8_alias(std::string value) {
135 const std::string up = upper_copy_ascii(std::move(value));
136 return up == "INT8" || up == "EVXX_INT8";
137}

tensor_to_pcm_audio()

PcmAudio simaai::neat::tensor_to_pcm_audio (const Tensor & tensor)

Definition at line 15 of file TensorAudio.h.

tensors_from_sample()

TensorList simaai::neat::tensors_from_sample (const Sample & sample, bool require_nonempty=true)

Extract all tensors from any sample shape (Tensor, TensorSet, Bundle); flattens recursively.

Definition at line 511 of file SessionOptions.h.

throw_if_bus_error()

void simaai::neat::throw_if_bus_error (GstElement * pipeline, BusMessageFn on_message, void * user_data, BusErrorFn on_error, void * error_user_data)

Drain the bus and throw a SessionError if any error message is found.

Drains exactly like drain_bus but additionally invokes on_error and raises a SessionError if any GST_MESSAGE_ERROR is observed.

Parameters
pipeline

Pipeline whose bus to drain.

on_message

Callback invoked for every message (may be null).

user_data

Opaque pointer forwarded to on_message.

on_error

Callback invoked once for the error line before throwing (may be null).

error_user_data

Opaque pointer forwarded to on_error.

Definition at line 69 of file GstBusWatch.h.

to_string()

const char* simaai::neat::to_string (ValidationSeverity s)
inline

Stable string label for a ValidationSeverity (for reports/logs).

Definition at line 36 of file ValidationReport.h.

36inline const char* to_string(ValidationSeverity s) {
37 switch (s) {
39 return "INFO";
41 return "WARNING";
43 return "ERROR";
44 }
45 return "UNKNOWN";
46}

upper_copy_ascii()

std::string simaai::neat::upper_copy_ascii (std::string value)
inline

ASCII upper-case copy of value (does not touch non-ASCII bytes).

Definition at line 115 of file FormatSpec.h.

115inline std::string upper_copy_ascii(std::string value) {
116 std::transform(value.begin(), value.end(), value.begin(),
117 [](unsigned char c) { return static_cast<char>(std::toupper(c)); });
118 return value;
119}

The documentation for this namespace was generated from the following files:


Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.1.