Reza2kn commited on
Commit
8ef2a61
·
verified ·
1 Parent(s): 21fd722

Publish complete experimental Audio8 Q4 model and runtimes

Browse files

Experimental release; accuracy, memory and latency limits are documented.
Release manifest SHA256: eba69a195d75757f9b14446cd7f58ff1f6e9374287c23f0a653b3909245ff480

README.md CHANGED
@@ -39,7 +39,7 @@ acceptance result.
39
  | Full English diagnostic | Errors /478 words | Peak process RSS | Queue /latency result |
40
  |---|---:|---:|---|
41
  | Original BF16 CUDA, frozen silence resets |171 (35.77% WER)|Not compared|Unpaced quality control; no latency claim|
42
- | Native CPU BF16, batch1 |185 (38.70% WER)|2.431 GB|Non-EOF receipt queue **10.146s: sustained real-time failed**|
43
  | MLX F16/BF16, batch4 |186 (38.91% WER)|2.646 GB|Non-EOF queue0.337s; 13 labeled matches >1s; memory target exceeded|
44
 
45
  See `evaluation/paired-quality.json` for exact aggregates, report hashes and
@@ -76,34 +76,47 @@ measurement. Loading and projection warmup happen before readiness.
76
 
77
  ## Linux CPU
78
 
79
- The supplied native executable is Linux x86_64 and requires GLIBC 2.35 or newer.
80
- Its tested BF16 route used an AMD Ryzen AI 9 HX 370 (12 physical/24 logical cores)
81
- on Linux7.0/glibc2.43, with eight selected physical cores and nice15. Other CPU families,
82
- instruction fallbacks, core counts and distributions have no equivalent speed
83
- claim. The launcher chooses up to eight distinct physical cores within the
84
- inherited allowed mask; if topology is unavailable it preserves the mask and
85
- reports that fallback. It does not change other processes or system policy.
86
 
87
  ```sh
88
  chmod +x bin/linux-x86_64/audio8-stream
89
- sh ./run-cpu-linux-x86_64.sh audio.f32le en
 
90
  ```
91
 
92
- Use `zh` for Chinese. The fixed profile is BF16 activation, BF16 cache, RT18/240,
93
- batch1, eight workers/four tasks. Do not invoke the raw binary without its
94
- precision flags: its legacy A8 default failed quality checks for this model.
95
- Python3 is required only by the Linux topology-selector launcher.
96
-
97
- To rebuild, the exact native and tract sources and locks are included:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
 
99
  ```sh
100
  cargo build --manifest-path native/Cargo.toml --locked --release --features x86-vnni,silero --bin audio8-stream
101
  ```
102
 
103
- The current packaged native build passed 6 caption, 3 gated-input, 8 CLI and one
104
- BF16-mode tests plus strict Clippy over the selected library/CLI/tests. An
105
- unfiltered full-library and ASR-CLI execution was not part of that build record.
106
-
107
  ## Apple Silicon
108
 
109
  Use Python3.12 on Apple Silicon macOS. The tested route used an M2 on macOS26.5.1.
@@ -157,14 +170,15 @@ envelopes are preserved separately where built separately.
157
  {
158
  "native": {
159
  "status": "focused_tests_passed",
160
- "scope": "Linux x86_64, Ubuntu22.04 build, GLIBC\u22652.35; exact native inference evidence is reported separately.",
161
  "tests": {
162
- "caption": 6,
163
  "gated": 3,
164
- "cli": 8,
165
  "bf16_mode": 1
166
  },
167
- "unfiltered_library_suite_run": false
 
168
  },
169
  "mlx": {
170
  "status": "full_input_diagnostic_passed",
@@ -179,7 +193,7 @@ envelopes are preserved separately where built separately.
179
  "AMD integrated Vulkan is slower than the input clock in this smoke.",
180
  "WorkRTF includes VAD-gated silence; it is not sustained uninterrupted-speech throughput.",
181
  "ProcessRSS excludes device-resident GPU allocation. PeakGPU memory was not sampled; buffer/payload figures are separate.",
182
- "Known long-speech omissions, memory target misses and sustained/native latency failures remain; fresh qualification was not run."
183
  ],
184
  "glibc_required": "2.43",
185
  "linkage_scope": "CLI resolves adjacent bridge via $ORIGIN; external GPU driver and matching system runtime libraries are required.",
@@ -194,7 +208,7 @@ envelopes are preserved separately where built separately.
194
  "AMD integrated Vulkan is slower than the input clock in this smoke.",
195
  "WorkRTF includes VAD-gated silence; it is not sustained uninterrupted-speech throughput.",
196
  "ProcessRSS excludes device-resident GPU allocation. PeakGPU memory was not sampled; buffer/payload figures are separate.",
197
- "Known long-speech omissions, memory target misses and sustained/native latency failures remain; fresh qualification was not run."
198
  ],
199
  "glibc_required": "2.43",
200
  "linkage_scope": "CLI resolves adjacent bridge via $ORIGIN; external GPU driver and matching system runtime libraries are required."
@@ -206,7 +220,7 @@ envelopes are preserved separately where built separately.
206
 
207
  The launchers enforce `execution_profile.json`; only input, language and the declared prefix operation are configurable.
208
 
209
- `run-cpu-linux-x86_64.sh` uses BF16 activations, realtime startup, 240 ms model delay, 8 workers, 4 tasks per worker, batch 1 after first batch 1, BF16 cache, default worker QoS, and prefix policy `none`. Arbitrary runtime flags are refused.
210
 
211
  This Linux launcher also requires Python 3. It selects one logical CPU from each of 8 distinct physical cores inside the inherited allowed mask, ranking static maximum frequency first and then CPU ID. It changes only its own process affinity and records the actual selection on stderr. If topology or enough physical cores are unavailable, it preserves the inherited mask; performance in that fallback is unverified. No speed claim extends to untested hardware.
212
 
 
39
  | Full English diagnostic | Errors /478 words | Peak process RSS | Queue /latency result |
40
  |---|---:|---:|---|
41
  | Original BF16 CUDA, frozen silence resets |171 (35.77% WER)|Not compared|Unpaced quality control; no latency claim|
42
+ | Native CPU BF16, batch1, offline prefix |185 (38.70% WER)|2.434 GB|Peak non-EOF queue **0.518s**; matched-word p95 **0.657s**; one match exceeds1s|
43
  | MLX F16/BF16, batch4 |186 (38.91% WER)|2.646 GB|Non-EOF queue0.337s; 13 labeled matches >1s; memory target exceeded|
44
 
45
  See `evaluation/paired-quality.json` for exact aggregates, report hashes and
 
76
 
77
  ## Linux CPU
78
 
79
+ The executable requires Linux x86_64 and GLIBC2.35 or newer. The new path uses
80
+ four-query encoder attention and exact BF16 cache-rebase acceleration. For the
81
+ lowest measured startup delay, prepare the audio-independent cache once on the
82
+ machine where inference will run, then pass it explicitly:
 
 
 
83
 
84
  ```sh
85
  chmod +x bin/linux-x86_64/audio8-stream
86
+ sh ./run-cpu-linux-x86_64.sh --prepare-prefix en ./prefix-en.a8pfx
87
+ sh ./run-cpu-linux-x86_64.sh audio.f32le en ./prefix-en.a8pfx
88
  ```
89
 
90
+ Use `zh` and a separately prepared Chinese prefix for Chinese input. Preparation
91
+ is a separate operation and does not read microphone audio. Prefixes are bound to
92
+ the executable, weights, frontend, CPU/OS, language and execution profile; prepare
93
+ a new file after any mismatch. Every silence reset checks the prefix again.
94
+ The existing two-argument invocation remains supported, with slower speech-start
95
+ processing. Arbitrary runtime flags are refused.
96
+
97
+ On Ryzen AI9 HX370, eight physical cores, Linux7.0/glibc2.43 and nice15, the full
98
+ 319.715s paced diagnostic preserved all2831 tokens. Mature-cache model work,
99
+ including trims, took53.361s for55.2s of audio (RTF0.9667). Peak non-EOF backlog
100
+ was0.518s. Matched-word delay was0.484s median and0.657s p95; one matched unit
101
+ exceeded1s and omissions remain errors. This is **not a universal one-second
102
+ latency pass**. Process peakRSS was2.434GB. Model/prefix loading and separate
103
+ prefix preparation are outside the warmed streaming interval; start live audio
104
+ after `caption_stream_ready`. The full timing used a host build from the same
105
+ source; the supplied GLIBC2.35 binary separately passed EN/ZH prefix parity.
106
+
107
+ The launcher selects eight distinct physical cores within its inherited allowed
108
+ mask. If topology is unavailable it preserves that mask and reports the fallback;
109
+ performance on other CPU families or instruction fallbacks is unqualified.
110
+ Python3 is used by this topology selector. The fixed arithmetic is BF16 activation
111
+ and cache, RT18/240, batch1, eight workers and four tasks. The raw binary's legacy
112
+ A8 default failed quality checks for these weights, so use the launcher.
113
+
114
+ Exact sources and dependency locks are included:
115
 
116
  ```sh
117
  cargo build --manifest-path native/Cargo.toml --locked --release --features x86-vnni,silero --bin audio8-stream
118
  ```
119
 
 
 
 
 
120
  ## Apple Silicon
121
 
122
  Use Python3.12 on Apple Silicon macOS. The tested route used an M2 on macOS26.5.1.
 
170
  {
171
  "native": {
172
  "status": "focused_tests_passed",
173
+ "scope": "Linux x86_64, Ubuntu22.04 build, GLIBC>=2.35; improved source passed same-binary EN/ZH prefix parity. Full paced timing below used the identical source in a separately pinned host build.",
174
  "tests": {
175
+ "caption": 7,
176
  "gated": 3,
177
+ "cli": 10,
178
  "bf16_mode": 1
179
  },
180
+ "unfiltered_library_suite_run": false,
181
+ "portable_prefix_parity": true
182
  },
183
  "mlx": {
184
  "status": "full_input_diagnostic_passed",
 
193
  "AMD integrated Vulkan is slower than the input clock in this smoke.",
194
  "WorkRTF includes VAD-gated silence; it is not sustained uninterrupted-speech throughput.",
195
  "ProcessRSS excludes device-resident GPU allocation. PeakGPU memory was not sampled; buffer/payload figures are separate.",
196
+ "Known long-speech omissions and memory target misses remain; strict per-word latency and broad runtime qualification are unproven."
197
  ],
198
  "glibc_required": "2.43",
199
  "linkage_scope": "CLI resolves adjacent bridge via $ORIGIN; external GPU driver and matching system runtime libraries are required.",
 
208
  "AMD integrated Vulkan is slower than the input clock in this smoke.",
209
  "WorkRTF includes VAD-gated silence; it is not sustained uninterrupted-speech throughput.",
210
  "ProcessRSS excludes device-resident GPU allocation. PeakGPU memory was not sampled; buffer/payload figures are separate.",
211
+ "Known long-speech omissions and memory target misses remain; strict per-word latency and broad runtime qualification are unproven."
212
  ],
213
  "glibc_required": "2.43",
214
  "linkage_scope": "CLI resolves adjacent bridge via $ORIGIN; external GPU driver and matching system runtime libraries are required."
 
220
 
221
  The launchers enforce `execution_profile.json`; only input, language and the declared prefix operation are configurable.
222
 
223
+ `run-cpu-linux-x86_64.sh` uses BF16 activations, realtime startup, 240 ms model delay, 8 workers, 4 tasks per worker, batch 1 after first batch 1, BF16 cache, default worker QoS, and optional, explicitly prepared constant prefixes. The tiled encoder is enabled. Arbitrary runtime flags are refused.
224
 
225
  This Linux launcher also requires Python 3. It selects one logical CPU from each of 8 distinct physical cores inside the inherited allowed mask, ranking static maximum frequency first and then CPU ID. It changes only its own process affinity and records the actual selection on stderr. If topology or enough physical cores are unavailable, it preserves the inherited mask; performance in that fallback is unverified. No speed claim extends to untested hardware.
226
 
SHA256SUMS CHANGED
@@ -1,5 +1,5 @@
1
  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
2
- b00e1558b5bebbf7e3deeadc59e8d12b06eda452482192924340186fbd17b33b README.md
3
  bf1bdaa245a5a4886d7a061d09a072e819079d20d55440e817156cf1f3133497 THIRD_PARTY_NOTICES.md
4
  744baed356a8c86a9791fc76cecb73219ed4aff795147c6cdc082337a13f019c assets/config.json
5
  ab3a69e95c9a7fd54adeec09c9cdfe4c79fa81f85908f2154d074bde9ee43102 assets/frontend.a8m
@@ -10,10 +10,15 @@ ee0dac67c684faa527db5d26a75109e168723fdae38b49e0c1bb471a953f6c45 assets/preproc
10
  7fdc1e903297ea1fa438b77503db993c50a67f8b325b4e55754f08b8579c5410 assets/tokenizer.a8tok
11
  72f8b7e878ee6606c309881f68201e277f9dae50175a387074a5181d771b9599 assets/tokenizer.json
12
  ceca11f549d6a8550430c7272e9aa40582bffd633f8998335883a428f4d77fb9 assets/tokenizer_config.json
13
- 30486025c4ba0cb6d8f4d094b556fb22dbe7ecd2018caaeda740ed235ff51626 bin/linux-x86_64/audio8-stream
14
- 50f953d865bc9203e5f78db181ebfe8fb0576b537f9f435db6d6cf873adedee0 evaluation/native-cpu-is1000a.json
 
 
 
 
 
15
  3d01bbe38db3dbba4701e0480bc08ee578ff12a9fb63ab4c6eed380ce41058de evaluation/paired-quality.json
16
- a2b8f0e326fa2d87b0ff165a034b6240742eeb22bc8020408956ac79ab0f3c2e execution_profile.json
17
  d5b992bd89fc32f0166ec15b24ad45c7520621c308de04ba0a9dca7b2519f465 gguf/audio8-q4_0.gguf
18
  fddd6ef5150c84060a6a6770da7ac7d60f7eef51f5f2e3d944831b625bb8e2fb gguf/bin/linux-x86_64-cuda/audio8-gguf
19
  8793f0c1bda707fe7d9deddcba06d669063cfaed2f28f6e4b970b677aaac5ae2 gguf/bin/linux-x86_64-cuda/libaudio8-bridge.so
@@ -101,12 +106,12 @@ d3a573bc80d5ae32facea4fe25213a18b1ad81a38390cfe619a58b199681b6f7 native/example
101
  20ee26d166b64e6574e07650c37a6b016b9fd02b76801778a93e522ad6cc2585 native/src/attention_x86.rs
102
  6f9a839012e518cd3f37f6e8464a254af2b2c3325dafdb01f6fa5447f4960c9b native/src/audio_path.rs
103
  796870256040be1ecc9851ce9e72bc9522776e82327f9610a6b527b0edc8d1b8 native/src/bin/audio8-asr.rs
104
- 5fbe1ca1c377d1855539c1245270ecddb2dd0f830521519e43e71585aa4d8d54 native/src/bin/audio8-stream.rs
105
  b78b7f0831c6b7b61c5352001c8d2900686a44a00c181d61dbb3ebf8b9f06175 native/src/bin/kleidi-bench.rs
106
  0ab0e8cf673b3a41e207c37e82a0b41e7e93657a0f807308311b9c0fd527e906 native/src/bin/support/runtime_platform.rs
107
- 6e78be61fc887c530e6bb008b9f310191023cb8a7700e299fd7c98e1f53aa320 native/src/bin/support/silero_stream.rs
108
  0f1972219a26bd6871f2f18cd0cf1279dd576638ae1782136c4792df818a10c1 native/src/bin/support/stream_common.rs
109
- 1b7c1231aa128d9d758352bc8926bda352b2a8f65d0294892ff8b82f4543f476 native/src/caption_stream.rs
110
  b99699ca70373281f9ec94d3f84484536a8eb9a85d1abd0350d3099105f327c2 native/src/conditioning.rs
111
  0faa455bde072cedecd336548f17b4bfd54dca6addae0e899fd755dad19870c7 native/src/conv_math.rs
112
  6681de746aed594960824b8d1d34b8bfb13d0d8544218b6cf4747b09133e4f71 native/src/decoder.rs
@@ -115,14 +120,16 @@ b99699ca70373281f9ec94d3f84484536a8eb9a85d1abd0350d3099105f327c2 native/src/con
115
  7fd1b32f3472a2823219fa0ced7d20dfa735932f334cebe460dd06b979170567 native/src/encoder_head_local_tests.rs
116
  8786f9fb09852232daa533f791f22c69bd02ad135016a2b136739597467269c0 native/src/encoder_i8mm_tests.rs
117
  51160570e37fd8f776cc46d9909b1410983307a423db6e39b3467fd52b2c7cd8 native/src/encoder_phase_tests.rs
118
- fd3203940bc11da712db02bd98d957def495d59d5804d87c67ce461f7c3de391 native/src/encoder_tiled_attention.rs
119
- 5b046f439afa58815893037ab6700cf7470d816a4fcff1f87446225a36dbea30 native/src/encoder_tiled_attention_tests.rs
 
120
  f1725764917be7a7c6a31056b9b70d7dcebe0fb3f1dde29de552c9be749560ca native/src/encoder_x86_attention_tests.rs
121
  9845f0e771241b67e3640add3401b6a9cdf24af2b826dcb9960b1937a3b45a0e native/src/engine.rs
122
  34e14383a5d82db0396cb55571d750c8d0bb02c0680415243114b8204c111fe6 native/src/fast_sha256.rs
123
  1dd5c23afa9af4a294f7efdf942e6b6a2b6c3abddaa44839c57f92b8b093b519 native/src/frontend.rs
124
  4207564489bb02e305cc04e03cb99759dbd1ec8a711c07aab010cc99f740376f native/src/gated_audio.rs
125
- 2ae02b5812d672303e1cbab426d1d368c75fe02207149ec1b0e9bb7296de90c7 native/src/kv_storage.rs
 
126
  ebed9b2b955c3f442c986bdfcdb08256d1f42043af9c827ee924b7f2ef102726 native/src/lib.rs
127
  aecfefe0c0a082a1f4c081a431f52c45a04e5dc15c83331f9e0d8e610eec17ee native/src/live_audio.rs
128
  bf0c6940b2bbf6fff892a1e75bcb17ae2fa45a7c7b3b062caa3c34647f0c93dd native/src/main.rs
@@ -171,12 +178,12 @@ ee406402dfc2c7ea095a577b4b0d9628cc4a767b725e64d93c82947ef5b7dab0 provenance/ggu
171
  156a9323fdf400929aadb1388ad151f92a99e8a745126b6175390fec0da16bc5 provenance/gguf-validation.json
172
  0f082a92d3efb089616f62600850b89450240bdbadbfe3a696ca5f7469ba41d5 provenance/gpu-components.json
173
  fcf74803d0369127364b5776d37703cd2b3220fd73da3c04e0019f217ddfeea9 provenance/mlx-source.json
174
- 5f8783ef97d7730d470c82cd74b459dd7f92c1ad6c4744dbcd1fe72a18c652a4 provenance/native-build.json
175
  52c865bb02d45ab5c814c7fcae167aa8b08722c2e2701094e21d33f3c3c5b998 provenance/native-model.json
176
- e52a0d57d942261cb9cc22cbaf8280dbf46dd888aedae2d3a6ccb9abda0cdb4e provenance/native-source-manifest.json
177
  8b6d69400d95de97fc68b918eca6ac18a7cd30f7f38534d55c3e811c2363a19c provenance/silero-source.json
178
  d5a5d709779bc64a60b06fb9f4cf18bd8e492ee4934f6b730a8bfd076f26ad68 requirements-mlx.txt
179
- 3bdaf6e6c5a286670f1c688f9c84b4264d42f3e64d45c41f6f2ba9910a5d2a9c run-cpu-linux-x86_64.sh
180
  eb5c75f1ed0b252d75f994c1a671a354d671b12f6b6d369c577ac1033c2887cc run-cuda.sh
181
  069998da64992da3d8af0585130efcb5c440f31d642a4660ddf599cc5e26932e run-mlx.sh
182
  c949d5f4beb0f832a01f52f081eb7958904fdb527b88212edf884ccbeead07fa run-vulkan.sh
@@ -189,7 +196,7 @@ cce21d98591d574fd61d7c592f9da34a6cb50ba1525b2fd62e342011b14c2b51 sources/export
189
  4a49746e66382aedae7f8198df7061dcc07be1af9085494e68362605518c96da sources/exporter/gguf_runtime/test_gguf.py
190
  41630e094b99dafbe60c0a9e281b60386fcfa12582126ee99b89113543127f80 sources/exporter/gguf_runtime/validate.py
191
  0be9ba69d070da3b6accfda9f310de18d68e4063394c0ed94095ec053a558092 sources/mlx-caption-b4.zip
192
- 147842b7d73e9fa9dbb001fa68f9b8791bd15a619d68d62326f78bc6d023833f sources/native-caption-sources.tar.gz
193
  37ff846220ca490f2d38da5b2d9c777dadc0810f07b17f1ccb471f088b8929d0 vad_probe/Cargo.lock
194
  0313aae93c91e3a6a07c17b9e2381f4bbe642f4ec1ef15c5bdf09972ca967971 vad_probe/Cargo.toml
195
  a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 vad_probe/LICENSE
@@ -210,4 +217,4 @@ b2a88f248b2da47782e5a0db55179c71c7ad5bbecdef9fe52cbfa0907064b2f7 vendor/kleidia
210
  a2289e9a9517142dceff07ae58c0c78159f5521636172954aead083591bd03c0 vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x4_qsi4c32p4x4_16x4_neon_dotprod_audio8_f32scale_asm.S
211
  ab1a940870777fae2aca654d66720146a5b7dc4e981451b42cae1a31565cff5d vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x8_qsi4c32p4x8_16x4_neon_i8mm_audio8_f32scale_asm.S
212
  179e0843a453ee083105a5222094eaa7bfce714e68d96baabaec38e824fdefa7 vendor/kleidiai-audio8-bridge/provenance.json
213
- 94e528576fcb5bcabbb50295a9422f59b15515930c0298f0d22d9614c20c3a39 release_manifest.json
 
1
  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
2
+ 9550bfbe585313ec12d6aff5524db39b109c8377ee761913ab1cc5f270621e55 README.md
3
  bf1bdaa245a5a4886d7a061d09a072e819079d20d55440e817156cf1f3133497 THIRD_PARTY_NOTICES.md
4
  744baed356a8c86a9791fc76cecb73219ed4aff795147c6cdc082337a13f019c assets/config.json
5
  ab3a69e95c9a7fd54adeec09c9cdfe4c79fa81f85908f2154d074bde9ee43102 assets/frontend.a8m
 
10
  7fdc1e903297ea1fa438b77503db993c50a67f8b325b4e55754f08b8579c5410 assets/tokenizer.a8tok
11
  72f8b7e878ee6606c309881f68201e277f9dae50175a387074a5181d771b9599 assets/tokenizer.json
12
  ceca11f549d6a8550430c7272e9aa40582bffd633f8998335883a428f4d77fb9 assets/tokenizer_config.json
13
+ f10ccbdc33ed5bc73d96516403634cd5551c81a05be823af91060a178a92d2d3 bin/linux-x86_64/audio8-stream
14
+ 50f953d865bc9203e5f78db181ebfe8fb0576b537f9f435db6d6cf873adedee0 evaluation/native-cpu-is1000a-baseline-v1.json
15
+ 9c17000800c34aae880867c03d5d6f1b49d185e223d0e5f0a0ad1460cab7326e evaluation/native-cpu-is1000a.json
16
+ 2d5f1ea91f1dcc518297748dfd2c673b7a4c03fe92153665ac8a0740aa7e79c6 evaluation/native-cpu-prefix-phase-summary.json
17
+ 7064c936b7c769914ed11659eba2ed1343a1df920ad4a5651df4b0ce934b054b evaluation/native-cpu-prefix-strict-verification.json
18
+ 5b8b9fe44c5603a52752c5a11de70961e6c74cfe5297b80c3064a0d9fc360c65 evaluation/native-portable-prefix-parity.json
19
+ 5c207ebb8acc838707446667760eda6fe36717a7a90667904e710dacd24a8741 evaluation/native-rebase-component.json
20
  3d01bbe38db3dbba4701e0480bc08ee578ff12a9fb63ab4c6eed380ce41058de evaluation/paired-quality.json
21
+ 3cd780f88a4d269f61e9fbfff242569d32abffe59df70473486c5440489f1852 execution_profile.json
22
  d5b992bd89fc32f0166ec15b24ad45c7520621c308de04ba0a9dca7b2519f465 gguf/audio8-q4_0.gguf
23
  fddd6ef5150c84060a6a6770da7ac7d60f7eef51f5f2e3d944831b625bb8e2fb gguf/bin/linux-x86_64-cuda/audio8-gguf
24
  8793f0c1bda707fe7d9deddcba06d669063cfaed2f28f6e4b970b677aaac5ae2 gguf/bin/linux-x86_64-cuda/libaudio8-bridge.so
 
106
  20ee26d166b64e6574e07650c37a6b016b9fd02b76801778a93e522ad6cc2585 native/src/attention_x86.rs
107
  6f9a839012e518cd3f37f6e8464a254af2b2c3325dafdb01f6fa5447f4960c9b native/src/audio_path.rs
108
  796870256040be1ecc9851ce9e72bc9522776e82327f9610a6b527b0edc8d1b8 native/src/bin/audio8-asr.rs
109
+ 019315a3a4c4f7272de0956be6677d1ec54866b320a69b9ff0614df0bbe6181f native/src/bin/audio8-stream.rs
110
  b78b7f0831c6b7b61c5352001c8d2900686a44a00c181d61dbb3ebf8b9f06175 native/src/bin/kleidi-bench.rs
111
  0ab0e8cf673b3a41e207c37e82a0b41e7e93657a0f807308311b9c0fd527e906 native/src/bin/support/runtime_platform.rs
112
+ 1ff226447f4899eb5799c75c8b4d48d0e2c8aa208c6778aa58b623c2273dfacb native/src/bin/support/silero_stream.rs
113
  0f1972219a26bd6871f2f18cd0cf1279dd576638ae1782136c4792df818a10c1 native/src/bin/support/stream_common.rs
114
+ d2ca9ed8ecb989fcf86a7ee9f54870bc1a6e8c3b73707a3dc05714d2f2126d8b native/src/caption_stream.rs
115
  b99699ca70373281f9ec94d3f84484536a8eb9a85d1abd0350d3099105f327c2 native/src/conditioning.rs
116
  0faa455bde072cedecd336548f17b4bfd54dca6addae0e899fd755dad19870c7 native/src/conv_math.rs
117
  6681de746aed594960824b8d1d34b8bfb13d0d8544218b6cf4747b09133e4f71 native/src/decoder.rs
 
120
  7fd1b32f3472a2823219fa0ced7d20dfa735932f334cebe460dd06b979170567 native/src/encoder_head_local_tests.rs
121
  8786f9fb09852232daa533f791f22c69bd02ad135016a2b136739597467269c0 native/src/encoder_i8mm_tests.rs
122
  51160570e37fd8f776cc46d9909b1410983307a423db6e39b3467fd52b2c7cd8 native/src/encoder_phase_tests.rs
123
+ 08956db5a69de6269ca206c2761cf91fc67e9a1e44e1d35c7037537be742fbe4 native/src/encoder_tiled_attention.rs
124
+ 523567137fafdab39329135e273168549f98d479a2d44859b49dea4881e33a4d native/src/encoder_tiled_attention_tests.rs
125
+ 047afbbca2845290a4d4fa4e7e9027c646cce5039cb67aa3c0d794cc6e2d1802 native/src/encoder_tiled_attention_x86.rs
126
  f1725764917be7a7c6a31056b9b70d7dcebe0fb3f1dde29de552c9be749560ca native/src/encoder_x86_attention_tests.rs
127
  9845f0e771241b67e3640add3401b6a9cdf24af2b826dcb9960b1937a3b45a0e native/src/engine.rs
128
  34e14383a5d82db0396cb55571d750c8d0bb02c0680415243114b8204c111fe6 native/src/fast_sha256.rs
129
  1dd5c23afa9af4a294f7efdf942e6b6a2b6c3abddaa44839c57f92b8b093b519 native/src/frontend.rs
130
  4207564489bb02e305cc04e03cb99759dbd1ec8a711c07aab010cc99f740376f native/src/gated_audio.rs
131
+ 8508cc3cf6c266617948e2230513d72eaf34d8632c3c4141d67fbb27fb90b3c2 native/src/kv_rebase_x86.rs
132
+ a0e8dce85ae12f0bcb6603184e725e51d941a4206f11f09369258f1a5a409e0f native/src/kv_storage.rs
133
  ebed9b2b955c3f442c986bdfcdb08256d1f42043af9c827ee924b7f2ef102726 native/src/lib.rs
134
  aecfefe0c0a082a1f4c081a431f52c45a04e5dc15c83331f9e0d8e610eec17ee native/src/live_audio.rs
135
  bf0c6940b2bbf6fff892a1e75bcb17ae2fa45a7c7b3b062caa3c34647f0c93dd native/src/main.rs
 
178
  156a9323fdf400929aadb1388ad151f92a99e8a745126b6175390fec0da16bc5 provenance/gguf-validation.json
179
  0f082a92d3efb089616f62600850b89450240bdbadbfe3a696ca5f7469ba41d5 provenance/gpu-components.json
180
  fcf74803d0369127364b5776d37703cd2b3220fd73da3c04e0019f217ddfeea9 provenance/mlx-source.json
181
+ 541f57f9439a6f137bb85735608f4fb4c847ab1f68b866fd3007d02940711e1c provenance/native-build.json
182
  52c865bb02d45ab5c814c7fcae167aa8b08722c2e2701094e21d33f3c3c5b998 provenance/native-model.json
183
+ 70f257fac9ab0a96e116684623e893dad875acefff947adb04b694c9283dc0b8 provenance/native-source-manifest.json
184
  8b6d69400d95de97fc68b918eca6ac18a7cd30f7f38534d55c3e811c2363a19c provenance/silero-source.json
185
  d5a5d709779bc64a60b06fb9f4cf18bd8e492ee4934f6b730a8bfd076f26ad68 requirements-mlx.txt
186
+ 10dedd6b81a48eeaba5fea35f12528be2f1e296eb1d3b2310f8ca224c51dd617 run-cpu-linux-x86_64.sh
187
  eb5c75f1ed0b252d75f994c1a671a354d671b12f6b6d369c577ac1033c2887cc run-cuda.sh
188
  069998da64992da3d8af0585130efcb5c440f31d642a4660ddf599cc5e26932e run-mlx.sh
189
  c949d5f4beb0f832a01f52f081eb7958904fdb527b88212edf884ccbeead07fa run-vulkan.sh
 
196
  4a49746e66382aedae7f8198df7061dcc07be1af9085494e68362605518c96da sources/exporter/gguf_runtime/test_gguf.py
197
  41630e094b99dafbe60c0a9e281b60386fcfa12582126ee99b89113543127f80 sources/exporter/gguf_runtime/validate.py
198
  0be9ba69d070da3b6accfda9f310de18d68e4063394c0ed94095ec053a558092 sources/mlx-caption-b4.zip
199
+ fd68ec98f70ea455621adb1318b467cec36221dd9b66212f3e81cf5d92c48692 sources/native-caption-sources.tar.gz
200
  37ff846220ca490f2d38da5b2d9c777dadc0810f07b17f1ccb471f088b8929d0 vad_probe/Cargo.lock
201
  0313aae93c91e3a6a07c17b9e2381f4bbe642f4ec1ef15c5bdf09972ca967971 vad_probe/Cargo.toml
202
  a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2 vad_probe/LICENSE
 
217
  a2289e9a9517142dceff07ae58c0c78159f5521636172954aead083591bd03c0 vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x4_qsi4c32p4x4_16x4_neon_dotprod_audio8_f32scale_asm.S
218
  ab1a940870777fae2aca654d66720146a5b7dc4e981451b42cae1a31565cff5d vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x8_qsi4c32p4x8_16x4_neon_i8mm_audio8_f32scale_asm.S
219
  179e0843a453ee083105a5222094eaa7bfce714e68d96baabaec38e824fdefa7 vendor/kleidiai-audio8-bridge/provenance.json
220
+ eba69a195d75757f9b14446cd7f58ff1f6e9374287c23f0a653b3909245ff480 release_manifest.json
bin/linux-x86_64/audio8-stream CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:30486025c4ba0cb6d8f4d094b556fb22dbe7ecd2018caaeda740ed235ff51626
3
- size 28397232
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f10ccbdc33ed5bc73d96516403634cd5551c81a05be823af91060a178a92d2d3
3
+ size 28410544
evaluation/native-cpu-is1000a-baseline-v1.json ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema": "audio8.native_caption_diagnostic_summary.v1",
3
+ "status": "complete",
4
+ "release_type": "experimental",
5
+ "scope": "One previously exposed AMI IS1000a recording; no fresh heldout evaluation and no population-quality claim.",
6
+ "runtime": {
7
+ "os": "Linux x86_64 GNU",
8
+ "cpu": "AMD Ryzen AI 9 HX 370",
9
+ "physical_cpus": [
10
+ 0,
11
+ 1,
12
+ 2,
13
+ 3,
14
+ 4,
15
+ 5,
16
+ 6,
17
+ 7
18
+ ],
19
+ "workers": 8,
20
+ "row_tasks_per_worker": 4,
21
+ "nice": 15,
22
+ "activation": "bf16",
23
+ "activation_backend": "avx512_bf16_q4",
24
+ "batch_windows": 1,
25
+ "startup": "realtime18",
26
+ "delay_ms": 240,
27
+ "prefix_used": false,
28
+ "minimum_strong_glibc": "2.35",
29
+ "silero": "tract-onnx0.23.4; fixed existing v5 ONNX"
30
+ },
31
+ "model_sha256": "d40c393cfdb4fbd231c5fab593d844018b26f80d8a0113c9ae297b8edbee60ad",
32
+ "model_body_sha256": "0a5949f95ac476d7b9bd90ae70b55e6940e6a72ae5a614093f2c181bbb1c3553",
33
+ "binary_sha256": "30486025c4ba0cb6d8f4d094b556fb22dbe7ecd2018caaeda740ed235ff51626",
34
+ "source_manifest_sha256": "e52a0d57d942261cb9cc22cbaf8280dbf46dd888aedae2d3a6ccb9abda0cdb4e",
35
+ "audio_seconds": 319.715,
36
+ "input_sha256": "a2ca3b651137e316ec19127b5f4c785c258673968a93cd97df0834f97fcd125f",
37
+ "fixed_segments": 22,
38
+ "emissions": 2831,
39
+ "selected_samples": 3593008,
40
+ "unconsumed_selected_samples": 14264,
41
+ "all_input_bytes_observed_and_sha_verified": true,
42
+ "all_fixed_vad_boundaries_equal": true,
43
+ "token_parity": {
44
+ "all_ids_exact_mlx": true,
45
+ "ids": 2831,
46
+ "generated_ids_sha256": "d1c20a0f5c3f2ea79642f1397b00b8f7167c9592ef3a6507636d49ea4d048355",
47
+ "limitation": "Greedy token parity on this recording; not bitwise floating-point arithmetic equivalence or a general fidelity guarantee."
48
+ },
49
+ "quality_counts": {
50
+ "hits": 298,
51
+ "substitutions": 46,
52
+ "deletions": 134,
53
+ "insertions": 5,
54
+ "reference_units": 478,
55
+ "hypothesis_units": 349,
56
+ "errors": 185,
57
+ "error_rate": 0.38702928870292885
58
+ },
59
+ "prior_original_reset_errors": 171,
60
+ "prior_original_reference_units": 478,
61
+ "phase_seconds": {
62
+ "model_seconds": 209.74198503299976,
63
+ "reset_seconds": 0.32344611599999995,
64
+ "vad_seconds": 1.9816165189999988,
65
+ "read_seconds": 110.4583317700005,
66
+ "elapsed_seconds": 322.584235459,
67
+ "work_rtf": 0.663237720056925
68
+ },
69
+ "model_window_work_seconds": {
70
+ "p50": 0.062017852,
71
+ "p95": 0.089313997,
72
+ "max": 0.721454188
73
+ },
74
+ "load_seconds": 5.439074583,
75
+ "first_readable_host_seconds": 1.8761147260665894,
76
+ "host_receipt_max_queue_seconds": 10.145683053080006,
77
+ "host_receipt_non_eof_max_queue_seconds": 10.145683053080006,
78
+ "published_word_timing": {
79
+ "correctly_matched_units": 298,
80
+ "ambiguous_matched_units": 8,
81
+ "unambiguous_matched_units": 290,
82
+ "unmatched_reference_units": 180,
83
+ "matched_reference_fraction": 0.6234309623430963,
84
+ "p50_seconds": 1.839195849895475,
85
+ "p95_seconds": 8.944219085872191,
86
+ "maximum_seconds": 10.365784198902531,
87
+ "unambiguous_maximum_seconds": 10.365784198902531,
88
+ "matched_units_above_one_second": 213
89
+ },
90
+ "word_timing_limitation": "Lag summaries use one deterministic text alignment and are descriptive when alternative optimal alignments exist. Only unambiguous matches can support per-word timing claims. Omissions/substitutions remain errors, never zero-latency successes. Published reference timing uncertainty and overlapping-speaker word order are not independently corrected.",
91
+ "source_delivery": {
92
+ "chunk_samples": 320,
93
+ "scheduled_source_duration_seconds": 319.715,
94
+ "actual_feeder_duration_seconds": 320.3238878538832,
95
+ "max_delivery_lateness_seconds": 9.128275424093033
96
+ },
97
+ "weights_resident_bytes": 2188118080,
98
+ "peak_kv_payload_capacity_bytes": 210169856,
99
+ "peak_process_rss_bytes": 2431176704,
100
+ "maximum_input_retained_samples": 6912,
101
+ "gates": {
102
+ "one_second_caption_delay": false,
103
+ "at_most_two_decimal_gb_process_rss": false,
104
+ "production_accuracy_approved": false,
105
+ "release_accepted": false
106
+ },
107
+ "workload_rtf_limitation": "The0.663 workload ratio includes VAD-discarded silence in its denominator; continuous active speech still accumulated10.146s of queue. It is not a sustained low-latency pass.",
108
+ "evidence": {
109
+ "full_report": {
110
+ "path": "reports/native-caption-rt240-is1000a-v1/native-rt240-silero-b1-is1000a-v1.json",
111
+ "bytes": 291840,
112
+ "sha256": "c7346ed5a1e779891279062fc6b400431a433a4a7f112aff11e50bbf550750d9"
113
+ },
114
+ "raw_events": {
115
+ "path": "reports/native-caption-rt240-is1000a-v1/native-rt240-silero-b1-is1000a-v1.jsonl",
116
+ "bytes": 978692,
117
+ "sha256": "bbbafb1a5c9451de5b467edaa6589ed7ff28a04b4780864711a276e9a25f2d09"
118
+ },
119
+ "host_receipts": {
120
+ "path": "reports/native-caption-rt240-is1000a-v1/native-rt240-silero-b1-is1000a-v1.observed.jsonl",
121
+ "bytes": 741319,
122
+ "sha256": "f67164ea4cebffa3c518cf321913e132f5ff7d046f96c5918b24ee145606c6e7"
123
+ },
124
+ "plan": {
125
+ "path": "reports/native-caption-rt240-is1000a-v1/run-plan-v1.json",
126
+ "bytes": 7584,
127
+ "sha256": "7e506b998186de644095d78c9d3fe682c359a197dabdb6faec103d6fa96f896c"
128
+ },
129
+ "preflight": {
130
+ "path": "reports/native-caption-rt240-is1000a-v1/preflight-v1.json",
131
+ "bytes": 3175,
132
+ "sha256": "7974bd8f1d0bb55bc3f9d0f81b140d0fc986f222df41eb275115a94860b8ccc4"
133
+ },
134
+ "build_record": {
135
+ "path": "reports/native-caption-ubuntu2204-v2/build-report.json",
136
+ "bytes": 7653,
137
+ "sha256": "5f8783ef97d7730d470c82cd74b459dd7f92c1ad6c4744dbcd1fe72a18c652a4"
138
+ },
139
+ "mlx_raw_reference": {
140
+ "path": "reports/mlx-live-silero-rt240-b2-is1000a-v1/run.jsonl",
141
+ "bytes": 1217631,
142
+ "sha256": "1b72a6d5069dd1438063e55a0675757be34d05fe94133a14b1d99380f5998d01"
143
+ }
144
+ },
145
+ "release_payload_contains_no_raw_audio_or_transcript": true
146
+ }
evaluation/native-cpu-is1000a.json CHANGED
@@ -1,146 +1,89 @@
1
  {
2
- "schema": "audio8.native_caption_diagnostic_summary.v1",
3
- "status": "complete",
4
- "release_type": "experimental",
5
- "scope": "One previously exposed AMI IS1000a recording; no fresh heldout evaluation and no population-quality claim.",
6
- "runtime": {
7
- "os": "Linux x86_64 GNU",
8
- "cpu": "AMD Ryzen AI 9 HX 370",
9
- "physical_cpus": [
10
- 0,
11
- 1,
12
- 2,
13
- 3,
14
- 4,
15
- 5,
16
- 6,
17
- 7
18
- ],
19
- "workers": 8,
20
- "row_tasks_per_worker": 4,
21
- "nice": 15,
22
- "activation": "bf16",
23
- "activation_backend": "avx512_bf16_q4",
24
- "batch_windows": 1,
25
- "startup": "realtime18",
26
- "delay_ms": 240,
27
- "prefix_used": false,
28
- "minimum_strong_glibc": "2.35",
29
- "silero": "tract-onnx0.23.4; fixed existing v5 ONNX"
30
  },
31
- "model_sha256": "d40c393cfdb4fbd231c5fab593d844018b26f80d8a0113c9ae297b8edbee60ad",
32
- "model_body_sha256": "0a5949f95ac476d7b9bd90ae70b55e6940e6a72ae5a614093f2c181bbb1c3553",
33
- "binary_sha256": "30486025c4ba0cb6d8f4d094b556fb22dbe7ecd2018caaeda740ed235ff51626",
34
- "source_manifest_sha256": "e52a0d57d942261cb9cc22cbaf8280dbf46dd888aedae2d3a6ccb9abda0cdb4e",
35
- "audio_seconds": 319.715,
36
- "input_sha256": "a2ca3b651137e316ec19127b5f4c785c258673968a93cd97df0834f97fcd125f",
37
- "fixed_segments": 22,
38
- "emissions": 2831,
39
- "selected_samples": 3593008,
40
- "unconsumed_selected_samples": 14264,
41
- "all_input_bytes_observed_and_sha_verified": true,
42
- "all_fixed_vad_boundaries_equal": true,
43
- "token_parity": {
44
- "all_ids_exact_mlx": true,
45
- "ids": 2831,
46
- "generated_ids_sha256": "d1c20a0f5c3f2ea79642f1397b00b8f7167c9592ef3a6507636d49ea4d048355",
47
- "limitation": "Greedy token parity on this recording; not bitwise floating-point arithmetic equivalence or a general fidelity guarantee."
48
- },
49
- "quality_counts": {
50
- "hits": 298,
51
- "substitutions": 46,
52
- "deletions": 134,
53
- "insertions": 5,
54
- "reference_units": 478,
55
- "hypothesis_units": 349,
56
- "errors": 185,
57
- "error_rate": 0.38702928870292885
58
- },
59
- "prior_original_reset_errors": 171,
60
- "prior_original_reference_units": 478,
61
- "phase_seconds": {
62
- "model_seconds": 209.74198503299976,
63
- "reset_seconds": 0.32344611599999995,
64
- "vad_seconds": 1.9816165189999988,
65
- "read_seconds": 110.4583317700005,
66
- "elapsed_seconds": 322.584235459,
67
- "work_rtf": 0.663237720056925
68
- },
69
- "model_window_work_seconds": {
70
- "p50": 0.062017852,
71
- "p95": 0.089313997,
72
- "max": 0.721454188
73
- },
74
- "load_seconds": 5.439074583,
75
- "first_readable_host_seconds": 1.8761147260665894,
76
- "host_receipt_max_queue_seconds": 10.145683053080006,
77
- "host_receipt_non_eof_max_queue_seconds": 10.145683053080006,
78
- "published_word_timing": {
79
  "correctly_matched_units": 298,
80
  "ambiguous_matched_units": 8,
 
81
  "unambiguous_matched_units": 290,
 
82
  "unmatched_reference_units": 180,
83
  "matched_reference_fraction": 0.6234309623430963,
84
- "p50_seconds": 1.839195849895475,
85
- "p95_seconds": 8.944219085872191,
86
- "maximum_seconds": 10.365784198902531,
87
- "unambiguous_maximum_seconds": 10.365784198902531,
88
- "matched_units_above_one_second": 213
89
- },
90
- "word_timing_limitation": "Lag summaries use one deterministic text alignment and are descriptive when alternative optimal alignments exist. Only unambiguous matches can support per-word timing claims. Omissions/substitutions remain errors, never zero-latency successes. Published reference timing uncertainty and overlapping-speaker word order are not independently corrected.",
91
- "source_delivery": {
92
- "chunk_samples": 320,
93
- "scheduled_source_duration_seconds": 319.715,
94
- "actual_feeder_duration_seconds": 320.3238878538832,
95
- "max_delivery_lateness_seconds": 9.128275424093033
96
  },
97
- "weights_resident_bytes": 2188118080,
98
- "peak_kv_payload_capacity_bytes": 210169856,
99
- "peak_process_rss_bytes": 2431176704,
100
- "maximum_input_retained_samples": 6912,
101
- "gates": {
102
- "one_second_caption_delay": false,
103
- "at_most_two_decimal_gb_process_rss": false,
104
- "production_accuracy_approved": false,
105
- "release_accepted": false
106
- },
107
- "workload_rtf_limitation": "The0.663 workload ratio includes VAD-discarded silence in its denominator; continuous active speech still accumulated10.146s of queue. It is not a sustained low-latency pass.",
108
- "evidence": {
109
- "full_report": {
110
- "path": "reports/native-caption-rt240-is1000a-v1/native-rt240-silero-b1-is1000a-v1.json",
111
- "bytes": 291840,
112
- "sha256": "c7346ed5a1e779891279062fc6b400431a433a4a7f112aff11e50bbf550750d9"
113
- },
114
- "raw_events": {
115
- "path": "reports/native-caption-rt240-is1000a-v1/native-rt240-silero-b1-is1000a-v1.jsonl",
116
- "bytes": 978692,
117
- "sha256": "bbbafb1a5c9451de5b467edaa6589ed7ff28a04b4780864711a276e9a25f2d09"
118
- },
119
- "host_receipts": {
120
- "path": "reports/native-caption-rt240-is1000a-v1/native-rt240-silero-b1-is1000a-v1.observed.jsonl",
121
- "bytes": 741319,
122
- "sha256": "f67164ea4cebffa3c518cf321913e132f5ff7d046f96c5918b24ee145606c6e7"
123
  },
124
- "plan": {
125
- "path": "reports/native-caption-rt240-is1000a-v1/run-plan-v1.json",
126
- "bytes": 7584,
127
- "sha256": "7e506b998186de644095d78c9d3fe682c359a197dabdb6faec103d6fa96f896c"
 
 
 
 
 
 
128
  },
129
- "preflight": {
130
- "path": "reports/native-caption-rt240-is1000a-v1/preflight-v1.json",
131
- "bytes": 3175,
132
- "sha256": "7974bd8f1d0bb55bc3f9d0f81b140d0fc986f222df41eb275115a94860b8ccc4"
 
 
 
 
 
 
133
  },
134
- "build_record": {
135
- "path": "reports/native-caption-ubuntu2204-v2/build-report.json",
136
- "bytes": 7653,
137
- "sha256": "5f8783ef97d7730d470c82cd74b459dd7f92c1ad6c4744dbcd1fe72a18c652a4"
138
- },
139
- "mlx_raw_reference": {
140
- "path": "reports/mlx-live-silero-rt240-b2-is1000a-v1/run.jsonl",
141
- "bytes": 1217631,
142
- "sha256": "1b72a6d5069dd1438063e55a0675757be34d05fe94133a14b1d99380f5998d01"
 
143
  }
144
- },
145
- "release_payload_contains_no_raw_audio_or_transcript": true
146
  }
 
1
  {
2
+ "status": "full_exposed_stream_verified",
3
+ "all_2831_ids_exact": true,
4
+ "model_changed": false,
5
+ "production_ready": false,
6
+ "published_package_changed": false,
7
+ "mature_work_seconds_including_trims": 53.360868192,
8
+ "mature_audio_budget_seconds": 55.2,
9
+ "mature_work_rtf_including_trims": 0.9666823947826086,
10
+ "long_segment_model_seconds": 78.840897153,
11
+ "long_segment_audio_seconds": 85.168,
12
+ "peak_non_eof_receipt_backlog_seconds": 0.5178427941128803,
13
+ "memory": {
14
+ "os_peak_process_rss_bytes": 2434076672,
15
+ "os_peak_memory_footprint_bytes": null,
16
+ "footprint_available": false,
17
+ "rss_source_unit": "KiB (1024 bytes)",
18
+ "elapsed_seconds": 326.58,
19
+ "user_seconds": 926.72,
20
+ "system_seconds": 74.73,
21
+ "scope": "Fresh native child process including loading and inference; excludes Python harness. RSS and footprint are separate measurements and must not be summed."
 
 
 
 
 
 
 
 
22
  },
23
+ "word_timing": {
24
+ "measured": true,
25
+ "actual_arrival_paced": true,
26
+ "timing_basis": "Independent host receipt of flushed JSONL since paced20ms producer start; all source words retained",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  "correctly_matched_units": 298,
28
  "ambiguous_matched_units": 8,
29
+ "ambiguity_method": "all minimum unit-cost Levenshtein paths, without timing-based selection",
30
  "unambiguous_matched_units": 290,
31
+ "unambiguous_maximum_seconds": 5.314757478116064,
32
  "unmatched_reference_units": 180,
33
  "matched_reference_fraction": 0.6234309623430963,
34
+ "min_seconds": -2.327656292887397,
35
+ "p50_seconds": 0.4837891599815265,
36
+ "p95_seconds": 0.6571080310922071,
37
+ "maximum_seconds": 5.314757478116064,
38
+ "matched_units_above_one_second": 1,
39
+ "all_matched_units_within_one_second": null,
40
+ "whole_release_pass": false,
41
+ "limitation": "Lag summaries use one deterministic text alignment and are descriptive when alternative optimal alignments exist. Only unambiguous matches can support per-word timing claims. Omissions/substitutions remain errors, never zero-latency successes. Published reference timing uncertainty and overlapping-speaker word order are not independently corrected."
 
 
 
 
42
  },
43
+ "groups": {
44
+ "early": {
45
+ "windows": 63,
46
+ "mean_work_seconds": 0.055957308666666664,
47
+ "mean_phase_seconds": {
48
+ "frontend": 0.003428708349206349,
49
+ "encoder": 0.02292193333333333,
50
+ "projector": 0.0003277466984126984,
51
+ "decoder": 0.02676664477777778,
52
+ "head": 0.0025069615555555554
53
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  },
55
+ "middle": {
56
+ "windows": 192,
57
+ "mean_work_seconds": 0.06687693241666666,
58
+ "mean_phase_seconds": {
59
+ "frontend": 0.00370436446875,
60
+ "encoder": 0.034558047125,
61
+ "projector": 0.0003304233541666667,
62
+ "decoder": 0.025908055890625,
63
+ "head": 0.0023705438697916668
64
+ }
65
  },
66
+ "late": {
67
+ "windows": 672,
68
+ "mean_work_seconds": 0.07568816295684525,
69
+ "mean_phase_seconds": {
70
+ "frontend": 0.003339698361607143,
71
+ "encoder": 0.04277912063541667,
72
+ "projector": 0.0003491926056547619,
73
+ "decoder": 0.026791862453869046,
74
+ "head": 0.002423294998511905
75
+ }
76
  },
77
+ "trim_windows": {
78
+ "windows": 19,
79
+ "mean_work_seconds": 0.13869575415789473,
80
+ "mean_phase_seconds": {
81
+ "frontend": 0.0022852106315789473,
82
+ "encoder": 0.1040742662631579,
83
+ "projector": 0.00033986926315789475,
84
+ "decoder": 0.029645222,
85
+ "head": 0.002327442947368421
86
+ }
87
  }
88
+ }
 
89
  }
evaluation/native-cpu-prefix-phase-summary.json ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "complete",
3
+ "production_ready": false,
4
+ "model_changed": false,
5
+ "all_2831_ids_exact_prior": true,
6
+ "binary": {
7
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-v1/bin/audio8-stream",
8
+ "bytes": 28412416,
9
+ "sha256": "d9c1ffb36b50f05f659a97fab0b605d72658c22b9e28a15e2108559c9e02e0d7"
10
+ },
11
+ "source_manifest": {
12
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-v1/manifest.json",
13
+ "bytes": 20863,
14
+ "sha256": "70f257fac9ab0a96e116684623e893dad875acefff947adb04b694c9283dc0b8"
15
+ },
16
+ "raw": {
17
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-v1/run.jsonl",
18
+ "bytes": 1214042,
19
+ "sha256": "5d36868e22753b611280e62e2c31facd687caa905c22f5aa3445e5805c67bb93"
20
+ },
21
+ "report": {
22
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-v1/run.json",
23
+ "bytes": 292124,
24
+ "sha256": "9510da6c4851143bcdad8d41deb11f3f81d623162088829164d8d71509577f13"
25
+ },
26
+ "groups": {
27
+ "early": {
28
+ "windows": 63,
29
+ "mean_work_seconds": 0.055957308666666664,
30
+ "mean_phase_seconds": {
31
+ "frontend": 0.003428708349206349,
32
+ "encoder": 0.02292193333333333,
33
+ "projector": 0.0003277466984126984,
34
+ "decoder": 0.02676664477777778,
35
+ "head": 0.0025069615555555554
36
+ }
37
+ },
38
+ "middle": {
39
+ "windows": 192,
40
+ "mean_work_seconds": 0.06687693241666666,
41
+ "mean_phase_seconds": {
42
+ "frontend": 0.00370436446875,
43
+ "encoder": 0.034558047125,
44
+ "projector": 0.0003304233541666667,
45
+ "decoder": 0.025908055890625,
46
+ "head": 0.0023705438697916668
47
+ }
48
+ },
49
+ "late": {
50
+ "windows": 672,
51
+ "mean_work_seconds": 0.07568816295684525,
52
+ "mean_phase_seconds": {
53
+ "frontend": 0.003339698361607143,
54
+ "encoder": 0.04277912063541667,
55
+ "projector": 0.0003491926056547619,
56
+ "decoder": 0.026791862453869046,
57
+ "head": 0.002423294998511905
58
+ }
59
+ },
60
+ "trim_windows": {
61
+ "windows": 19,
62
+ "mean_work_seconds": 0.13869575415789473,
63
+ "mean_phase_seconds": {
64
+ "frontend": 0.0022852106315789473,
65
+ "encoder": 0.1040742662631579,
66
+ "projector": 0.00033986926315789475,
67
+ "decoder": 0.029645222,
68
+ "head": 0.002327442947368421
69
+ }
70
+ }
71
+ },
72
+ "memory": {
73
+ "os_peak_process_rss_bytes": 2434076672,
74
+ "os_peak_memory_footprint_bytes": null,
75
+ "footprint_available": false,
76
+ "rss_source_unit": "KiB (1024 bytes)",
77
+ "elapsed_seconds": 326.58,
78
+ "user_seconds": 926.72,
79
+ "system_seconds": 74.73,
80
+ "scope": "Fresh native child process including loading and inference; excludes Python harness. RSS and footprint are separate measurements and must not be summed."
81
+ },
82
+ "host_receipt_non_eof_max_queue_seconds": 0.5178427941128803,
83
+ "scope": "Same full exposed319.715s input, causal20ms stdin, unchanged model with opt-in x86 tiled encoder and AVX2 BF16 rebase plus offline constant-prefix restore at every reset; host-glibc diagnostic build, not a portability or latency acceptance result."
84
+ }
evaluation/native-cpu-prefix-strict-verification.json ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "complete",
3
+ "all_ids_exact_expected": true,
4
+ "independent_delta_token_clock_oracle": true,
5
+ "raw_sha256": "5d36868e22753b611280e62e2c31facd687caa905c22f5aa3445e5805c67bb93",
6
+ "counts": {
7
+ "hits": 298,
8
+ "substitutions": 46,
9
+ "deletions": 134,
10
+ "insertions": 5,
11
+ "reference_units": 478,
12
+ "hypothesis_units": 349,
13
+ "errors": 185,
14
+ "error_rate": 0.38702928870292885
15
+ },
16
+ "word_timing": {
17
+ "measured": true,
18
+ "actual_arrival_paced": true,
19
+ "timing_basis": "Independent host receipt of flushed JSONL since paced20ms producer start; all source words retained",
20
+ "correctly_matched_units": 298,
21
+ "ambiguous_matched_units": 8,
22
+ "ambiguity_method": "all minimum unit-cost Levenshtein paths, without timing-based selection",
23
+ "unambiguous_matched_units": 290,
24
+ "unambiguous_maximum_seconds": 5.314757478116064,
25
+ "unmatched_reference_units": 180,
26
+ "matched_reference_fraction": 0.6234309623430963,
27
+ "min_seconds": -2.327656292887397,
28
+ "p50_seconds": 0.4837891599815265,
29
+ "p95_seconds": 0.6571080310922071,
30
+ "maximum_seconds": 5.314757478116064,
31
+ "matched_units_above_one_second": 1,
32
+ "all_matched_units_within_one_second": null,
33
+ "whole_release_pass": false,
34
+ "limitation": "Lag summaries use one deterministic text alignment and are descriptive when alternative optimal alignments exist. Only unambiguous matches can support per-word timing claims. Omissions/substitutions remain errors, never zero-latency successes. Published reference timing uncertainty and overlapping-speaker word order are not independently corrected."
35
+ }
36
+ }
evaluation/native-portable-prefix-parity.json ADDED
@@ -0,0 +1,449 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "complete",
3
+ "assets": {
4
+ "runtime_binary": {
5
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/bin/audio8-stream",
6
+ "bytes": 28410544,
7
+ "sha256": "f10ccbdc33ed5bc73d96516403634cd5551c81a05be823af91060a178a92d2d3",
8
+ "int8_backend": "avx512_vnni",
9
+ "activation_mode": "bf16",
10
+ "bf16_backend": "avx512_bf16_q4"
11
+ },
12
+ "model_stream": {
13
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-gptq-q4-decoder-rt240-v1/model.a8m",
14
+ "bytes": 2186697649,
15
+ "sha256": "d40c393cfdb4fbd231c5fab593d844018b26f80d8a0113c9ae297b8edbee60ad"
16
+ },
17
+ "frontend": {
18
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/frontend-primitive.a8m",
19
+ "bytes": 246012,
20
+ "sha256": "ab3a69e95c9a7fd54adeec09c9cdfe4c79fa81f85908f2154d074bde9ee43102"
21
+ },
22
+ "tokenizer": {
23
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/native-tokenizer-v1.a8tok",
24
+ "bytes": 1734837,
25
+ "sha256": "7fdc1e903297ea1fa438b77503db993c50a67f8b325b4e55754f08b8579c5410"
26
+ },
27
+ "vad": {
28
+ "path": "/home/rezo/audio8-q4-recovery-20260924/ggml-caption-runtime-v1/silero_vad.onnx",
29
+ "bytes": 2327524,
30
+ "sha256": "1a153a22f4509e292a94e67d6f9b85e8deb25b4988682b7e174c65279d8788e3"
31
+ },
32
+ "gate_native_caption_prefix_portable_v1.py": {
33
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/gate_native_caption_prefix_portable_v1.py",
34
+ "bytes": 7375,
35
+ "sha256": "85726e5bca06a29fba276331d5bfe6d6611510fff7f5722e207bb84c087ac34e"
36
+ },
37
+ "native_caption_prefix_identity_v1.py": {
38
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/native_caption_prefix_identity_v1.py",
39
+ "bytes": 9544,
40
+ "sha256": "6cb29827fcef442a8bf8ee98822895ac410aa8e2f3a199bcda5cb71d05bed7a5"
41
+ },
42
+ "caption_prefix_token_oracle_v1.py": {
43
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/caption_prefix_token_oracle_v1.py",
44
+ "bytes": 2745,
45
+ "sha256": "931a4b7d0ec5cabe63727fdb6194fc257463d60377b1088e1af0b2e71543c78b"
46
+ }
47
+ },
48
+ "inputs": [
49
+ {
50
+ "language": "en",
51
+ "source": {
52
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-heldout-campaign-v1/inputs/IS1000a.f32le",
53
+ "bytes": 20461760,
54
+ "sha256": "a2ca3b651137e316ec19127b5f4c785c258673968a93cd97df0834f97fcd125f"
55
+ },
56
+ "prefix_samples": 320000,
57
+ "input": {
58
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en.f32le",
59
+ "bytes": 1280000,
60
+ "sha256": "789ae2298d2dd8c814aeb72876207a786be82a5b890d421e65278af411f6d330"
61
+ }
62
+ },
63
+ {
64
+ "language": "zh",
65
+ "source": {
66
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-candidate-harness-linux-v1/artifacts/native-continuous-inputs-v1/zh-16-concatenated.f32le",
67
+ "bytes": 4730692,
68
+ "sha256": "288c4dffb6bf219fdca1918ede0127587b86308990db36462c15a517ed198ad3"
69
+ },
70
+ "prefix_samples": 256000,
71
+ "input": {
72
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh.f32le",
73
+ "bytes": 1024000,
74
+ "sha256": "0c6cfe81c30c17982fff369cbd137880f492b5528e8c10e48e21fb291a12b6e4"
75
+ }
76
+ }
77
+ ],
78
+ "profile": {
79
+ "gear": 4,
80
+ "first_batch": 1,
81
+ "mode": "realtime",
82
+ "delay": 3,
83
+ "startup": 18,
84
+ "startup_policy": "realtime18",
85
+ "activation_mode": "bf16",
86
+ "encoder_tiled_attention": true
87
+ },
88
+ "commands": [
89
+ {
90
+ "command": [
91
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/bin/audio8-stream",
92
+ "/home/rezo/audio8-q4-recovery-20260924/native-gptq-q4-decoder-rt240-v1/model.a8m",
93
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/frontend-primitive.a8m",
94
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/native-tokenizer-v1.a8tok",
95
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en.f32le",
96
+ "en",
97
+ "--workers",
98
+ "8",
99
+ "--tasks",
100
+ "4",
101
+ "--worker-qos",
102
+ "default",
103
+ "--activation",
104
+ "bf16",
105
+ "--startup",
106
+ "realtime",
107
+ "--delay-ms",
108
+ "240",
109
+ "--first-batch",
110
+ "1",
111
+ "--batch",
112
+ "1",
113
+ "--silero-vad",
114
+ "/home/rezo/audio8-q4-recovery-20260924/ggml-caption-runtime-v1/silero_vad.onnx",
115
+ "--encoder-tiled-attention",
116
+ "--prefix-out",
117
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en.a8pfx"
118
+ ],
119
+ "exit_code": 0,
120
+ "elapsed_seconds": 6.127583265304565,
121
+ "stdout": {
122
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en-export.jsonl",
123
+ "bytes": 289,
124
+ "sha256": "3d92d1886e570b83f0330e7337f66ab09d3eb7d4e27d72a9f807179386e7319c"
125
+ },
126
+ "stderr": {
127
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en-export.stderr.txt",
128
+ "bytes": 0,
129
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
130
+ }
131
+ },
132
+ {
133
+ "command": [
134
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/bin/audio8-stream",
135
+ "/home/rezo/audio8-q4-recovery-20260924/native-gptq-q4-decoder-rt240-v1/model.a8m",
136
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/frontend-primitive.a8m",
137
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/native-tokenizer-v1.a8tok",
138
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en.f32le",
139
+ "en",
140
+ "--workers",
141
+ "8",
142
+ "--tasks",
143
+ "4",
144
+ "--worker-qos",
145
+ "default",
146
+ "--activation",
147
+ "bf16",
148
+ "--startup",
149
+ "realtime",
150
+ "--delay-ms",
151
+ "240",
152
+ "--first-batch",
153
+ "1",
154
+ "--batch",
155
+ "1",
156
+ "--silero-vad",
157
+ "/home/rezo/audio8-q4-recovery-20260924/ggml-caption-runtime-v1/silero_vad.onnx",
158
+ "--encoder-tiled-attention"
159
+ ],
160
+ "exit_code": 0,
161
+ "elapsed_seconds": 15.062812566757202,
162
+ "stdout": {
163
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en-fresh.jsonl",
164
+ "bytes": 65082,
165
+ "sha256": "de87bf89c390ba8aae113d04d189096c327c541475aff63655ebbf23bdf74700"
166
+ },
167
+ "stderr": {
168
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en-fresh.stderr.txt",
169
+ "bytes": 0,
170
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
171
+ }
172
+ },
173
+ {
174
+ "command": [
175
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/bin/audio8-stream",
176
+ "/home/rezo/audio8-q4-recovery-20260924/native-gptq-q4-decoder-rt240-v1/model.a8m",
177
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/frontend-primitive.a8m",
178
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/native-tokenizer-v1.a8tok",
179
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en.f32le",
180
+ "en",
181
+ "--workers",
182
+ "8",
183
+ "--tasks",
184
+ "4",
185
+ "--worker-qos",
186
+ "default",
187
+ "--activation",
188
+ "bf16",
189
+ "--startup",
190
+ "realtime",
191
+ "--delay-ms",
192
+ "240",
193
+ "--first-batch",
194
+ "1",
195
+ "--batch",
196
+ "1",
197
+ "--silero-vad",
198
+ "/home/rezo/audio8-q4-recovery-20260924/ggml-caption-runtime-v1/silero_vad.onnx",
199
+ "--encoder-tiled-attention",
200
+ "--prefix-in",
201
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en.a8pfx"
202
+ ],
203
+ "exit_code": 0,
204
+ "elapsed_seconds": 14.595821619033813,
205
+ "stdout": {
206
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en-resumed.jsonl",
207
+ "bytes": 65142,
208
+ "sha256": "c3a1898d3e76f59952a8407ccc8645abca273251945078f5d14f79b0b53decca"
209
+ },
210
+ "stderr": {
211
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en-resumed.stderr.txt",
212
+ "bytes": 0,
213
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
214
+ }
215
+ },
216
+ {
217
+ "command": [
218
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/bin/audio8-stream",
219
+ "/home/rezo/audio8-q4-recovery-20260924/native-gptq-q4-decoder-rt240-v1/model.a8m",
220
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/frontend-primitive.a8m",
221
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/native-tokenizer-v1.a8tok",
222
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh.f32le",
223
+ "zh",
224
+ "--workers",
225
+ "8",
226
+ "--tasks",
227
+ "4",
228
+ "--worker-qos",
229
+ "default",
230
+ "--activation",
231
+ "bf16",
232
+ "--startup",
233
+ "realtime",
234
+ "--delay-ms",
235
+ "240",
236
+ "--first-batch",
237
+ "1",
238
+ "--batch",
239
+ "1",
240
+ "--silero-vad",
241
+ "/home/rezo/audio8-q4-recovery-20260924/ggml-caption-runtime-v1/silero_vad.onnx",
242
+ "--encoder-tiled-attention",
243
+ "--prefix-out",
244
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh.a8pfx"
245
+ ],
246
+ "exit_code": 0,
247
+ "elapsed_seconds": 6.2312843799591064,
248
+ "stdout": {
249
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh-export.jsonl",
250
+ "bytes": 289,
251
+ "sha256": "df930bb22d58803b1d5bd565cda9a06ea628f2d529f038b7eaa5cb0511288804"
252
+ },
253
+ "stderr": {
254
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh-export.stderr.txt",
255
+ "bytes": 0,
256
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
257
+ }
258
+ },
259
+ {
260
+ "command": [
261
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/bin/audio8-stream",
262
+ "/home/rezo/audio8-q4-recovery-20260924/native-gptq-q4-decoder-rt240-v1/model.a8m",
263
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/frontend-primitive.a8m",
264
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/native-tokenizer-v1.a8tok",
265
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh.f32le",
266
+ "zh",
267
+ "--workers",
268
+ "8",
269
+ "--tasks",
270
+ "4",
271
+ "--worker-qos",
272
+ "default",
273
+ "--activation",
274
+ "bf16",
275
+ "--startup",
276
+ "realtime",
277
+ "--delay-ms",
278
+ "240",
279
+ "--first-batch",
280
+ "1",
281
+ "--batch",
282
+ "1",
283
+ "--silero-vad",
284
+ "/home/rezo/audio8-q4-recovery-20260924/ggml-caption-runtime-v1/silero_vad.onnx",
285
+ "--encoder-tiled-attention"
286
+ ],
287
+ "exit_code": 0,
288
+ "elapsed_seconds": 19.04717469215393,
289
+ "stdout": {
290
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh-fresh.jsonl",
291
+ "bytes": 89018,
292
+ "sha256": "7e7051cbbddd77c7c853588e16ff35a0281609be08343892316456009105901c"
293
+ },
294
+ "stderr": {
295
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh-fresh.stderr.txt",
296
+ "bytes": 0,
297
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
298
+ }
299
+ },
300
+ {
301
+ "command": [
302
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/bin/audio8-stream",
303
+ "/home/rezo/audio8-q4-recovery-20260924/native-gptq-q4-decoder-rt240-v1/model.a8m",
304
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/frontend-primitive.a8m",
305
+ "/home/rezo/audio8-q4-recovery-20260924/native-candidate-gptq-q4-v1/artifacts/native-tokenizer-v1.a8tok",
306
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh.f32le",
307
+ "zh",
308
+ "--workers",
309
+ "8",
310
+ "--tasks",
311
+ "4",
312
+ "--worker-qos",
313
+ "default",
314
+ "--activation",
315
+ "bf16",
316
+ "--startup",
317
+ "realtime",
318
+ "--delay-ms",
319
+ "240",
320
+ "--first-batch",
321
+ "1",
322
+ "--batch",
323
+ "1",
324
+ "--silero-vad",
325
+ "/home/rezo/audio8-q4-recovery-20260924/ggml-caption-runtime-v1/silero_vad.onnx",
326
+ "--encoder-tiled-attention",
327
+ "--prefix-in",
328
+ "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh.a8pfx"
329
+ ],
330
+ "exit_code": 0,
331
+ "elapsed_seconds": 18.46669030189514,
332
+ "stdout": {
333
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh-resumed.jsonl",
334
+ "bytes": 88998,
335
+ "sha256": "2ba1a4fbe003646de1773f67a64d90df85b9d8ec45525425cf005395472ad7e1"
336
+ },
337
+ "stderr": {
338
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh-resumed.stderr.txt",
339
+ "bytes": 0,
340
+ "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
341
+ }
342
+ }
343
+ ],
344
+ "cases": [
345
+ {
346
+ "language": "en",
347
+ "windows": 161,
348
+ "segments": 2,
349
+ "all_ids_logits_clocks_exact": true,
350
+ "independent_caption_oracle": true,
351
+ "prefix": {
352
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en.a8pfx",
353
+ "bytes": 18454412,
354
+ "sha256": "81ec974db771b9e2aa45f5f8686a45c8717c5662ba30f814f11a10cd91c3525e"
355
+ },
356
+ "prefix_metadata": {
357
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/en.a8pfx",
358
+ "body_sha256": "05352479b4c46d0fdcec8f2eb16523d4aa2c06ee84c50752b0c21bc418ff485f",
359
+ "payload_bytes": 18452480,
360
+ "artifact_bytes": 18454412,
361
+ "encoder_frames": 68,
362
+ "decoder_tokens": 17,
363
+ "format": "A8PFX003",
364
+ "transcription_delay_ms": 240,
365
+ "startup_policy": "realtime18",
366
+ "startup_input_tokens": 18,
367
+ "first_batch_windows": 1,
368
+ "model_body_sha256": "0a5949f95ac476d7b9bd90ae70b55e6940e6a72ae5a614093f2c181bbb1c3553",
369
+ "frontend_sha256": "ab3a69e95c9a7fd54adeec09c9cdfe4c79fa81f85908f2154d074bde9ee43102",
370
+ "math_sha256": "f10ccbdc33ed5bc73d96516403634cd5551c81a05be823af91060a178a92d2d3",
371
+ "runtime_sha256": "7adfc3de2191b42c3fed7d180d101566fadbbe1ff30ba47d2ce99e254501814b",
372
+ "layout_sha256": "f5a298202d28b8df3c3732d2ed732b8fd3375ec68afdf20be4094c912bc52301",
373
+ "independent_runtime_validation": {
374
+ "sha256": "7adfc3de2191b42c3fed7d180d101566fadbbe1ff30ba47d2ce99e254501814b",
375
+ "backend": "avx512_vnni",
376
+ "activation_mode": "bf16",
377
+ "bf16_backend": "avx512_bf16_q4",
378
+ "worker_qos": "default",
379
+ "pool_driver": true,
380
+ "uname_stdout": "Linux 7.0.0-31-generic x86_64\n",
381
+ "cpu_identity_lines": [
382
+ "model name\t: AMD Ryzen AI 9 HX 370 w/ Radeon 890M",
383
+ "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpuid_fault cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx_vnni avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid bus_lock_detect movdiri movdir64b overflow_recov succor smca fsrm avx512_vp2intersect flush_l1d amd_lbr_pmc_freeze"
384
+ ],
385
+ "method": "independent Linux runtime fingerprint with record-declared backend; native importer verifies actual backend"
386
+ },
387
+ "remaining_native_validation": "Runtime additionally verifies actual packed layout identity and finite BF16 payloads before importing caches."
388
+ },
389
+ "fresh_first_step_seconds": 0.533635214,
390
+ "resumed_first_step_seconds": 0.079253785,
391
+ "no_speed_claim": true
392
+ },
393
+ {
394
+ "language": "zh",
395
+ "windows": 213,
396
+ "segments": 1,
397
+ "all_ids_logits_clocks_exact": true,
398
+ "independent_caption_oracle": true,
399
+ "prefix": {
400
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh.a8pfx",
401
+ "bytes": 18454412,
402
+ "sha256": "7613c43a7d9b92f436aeb297b71f47ae5e39b89964534cb508204ea765bd9725"
403
+ },
404
+ "prefix_metadata": {
405
+ "path": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/prefix-gate-v2/zh.a8pfx",
406
+ "body_sha256": "e51d5f7a67a70c9c00c7a86aa262192224b6e14ed074ffa27bfd2f564c0f9777",
407
+ "payload_bytes": 18452480,
408
+ "artifact_bytes": 18454412,
409
+ "encoder_frames": 68,
410
+ "decoder_tokens": 17,
411
+ "format": "A8PFX003",
412
+ "transcription_delay_ms": 240,
413
+ "startup_policy": "realtime18",
414
+ "startup_input_tokens": 18,
415
+ "first_batch_windows": 1,
416
+ "model_body_sha256": "0a5949f95ac476d7b9bd90ae70b55e6940e6a72ae5a614093f2c181bbb1c3553",
417
+ "frontend_sha256": "ab3a69e95c9a7fd54adeec09c9cdfe4c79fa81f85908f2154d074bde9ee43102",
418
+ "math_sha256": "f10ccbdc33ed5bc73d96516403634cd5551c81a05be823af91060a178a92d2d3",
419
+ "runtime_sha256": "7adfc3de2191b42c3fed7d180d101566fadbbe1ff30ba47d2ce99e254501814b",
420
+ "layout_sha256": "f5a298202d28b8df3c3732d2ed732b8fd3375ec68afdf20be4094c912bc52301",
421
+ "independent_runtime_validation": {
422
+ "sha256": "7adfc3de2191b42c3fed7d180d101566fadbbe1ff30ba47d2ce99e254501814b",
423
+ "backend": "avx512_vnni",
424
+ "activation_mode": "bf16",
425
+ "bf16_backend": "avx512_bf16_q4",
426
+ "worker_qos": "default",
427
+ "pool_driver": true,
428
+ "uname_stdout": "Linux 7.0.0-31-generic x86_64\n",
429
+ "cpu_identity_lines": [
430
+ "model name\t: AMD Ryzen AI 9 HX 370 w/ Radeon 890M",
431
+ "flags\t\t: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpuid_fault cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx_vnni avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid bus_lock_detect movdiri movdir64b overflow_recov succor smca fsrm avx512_vp2intersect flush_l1d amd_lbr_pmc_freeze"
432
+ ],
433
+ "method": "independent Linux runtime fingerprint with record-declared backend; native importer verifies actual backend"
434
+ },
435
+ "remaining_native_validation": "Runtime additionally verifies actual packed layout identity and finite BF16 payloads before importing caches."
436
+ },
437
+ "fresh_first_step_seconds": 0.535788785,
438
+ "resumed_first_step_seconds": 0.084110163,
439
+ "no_speed_claim": true
440
+ }
441
+ ],
442
+ "started_unix": 1790315285.2615948,
443
+ "source_manifest_sha256": "70f257fac9ab0a96e116684623e893dad875acefff947adb04b694c9283dc0b8",
444
+ "measured_latency": false,
445
+ "quality_acceptance": false,
446
+ "production_ready": false,
447
+ "finished_unix": 1790315365.9362092,
448
+ "all_assets_unchanged": true
449
+ }
evaluation/native-rebase-component.json ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "complete",
3
+ "started_unix": 1790312814.4039152,
4
+ "source_manifest_sha256": "5f47ecf9cfa0f1f9c83d4f628881486460798debe08f7ecb999aa2971cc41390",
5
+ "source_archive_sha256": "94e4a87f9a1f7c890c876121b8ba6a80985bcb8392b95f0446bd337598ff9a41",
6
+ "fixture_sha256": "7c9b2457035de4f5e1e8036764062e231ff4fb5e44a9016f9dd515d9382a3272",
7
+ "commands": [
8
+ {
9
+ "command": [
10
+ "/home/rezo/.cargo/bin/cargo",
11
+ "test",
12
+ "--offline",
13
+ "--locked",
14
+ "--release",
15
+ "--features",
16
+ "x86-vnni",
17
+ "--lib",
18
+ "kv_storage::",
19
+ "--",
20
+ "--test-threads=1"
21
+ ],
22
+ "exit_code": 0,
23
+ "elapsed_seconds": 30.30485224723816,
24
+ "log": "step-0.log",
25
+ "sha256": "b7b29778ad7072c022ce99bf93b2599c44e086d3ba94eb107fafae19265e2fad"
26
+ },
27
+ {
28
+ "command": [
29
+ "/home/rezo/.cargo/bin/cargo",
30
+ "test",
31
+ "--offline",
32
+ "--locked",
33
+ "--release",
34
+ "--features",
35
+ "x86-vnni",
36
+ "--lib",
37
+ "kv_storage::tests::rolling_upstream_oracle_fp32_and_exact_bf16",
38
+ "--",
39
+ "--ignored",
40
+ "--exact",
41
+ "--nocapture",
42
+ "--test-threads=1"
43
+ ],
44
+ "exit_code": 0,
45
+ "elapsed_seconds": 0.04168415069580078,
46
+ "log": "step-1.log",
47
+ "sha256": "2a710a5d4d644db27c3c88b1fbf06f7b8b26840b77863d08b48f8190e75fed56"
48
+ },
49
+ {
50
+ "command": [
51
+ "/home/rezo/.cargo/bin/cargo",
52
+ "test",
53
+ "--offline",
54
+ "--locked",
55
+ "--release",
56
+ "--features",
57
+ "x86-vnni",
58
+ "--lib",
59
+ "kv_storage::rebase_x86::tests::encoder_shape_rotation_pairs",
60
+ "--",
61
+ "--ignored",
62
+ "--exact",
63
+ "--nocapture",
64
+ "--test-threads=1"
65
+ ],
66
+ "exit_code": 0,
67
+ "elapsed_seconds": 0.1820228099822998,
68
+ "log": "step-2.log",
69
+ "sha256": "f9ca79785e6961beb2d4bb4f82764010d8fe847e75fd36935693b6336c9d9368"
70
+ }
71
+ ],
72
+ "cpu_affinity": [
73
+ 0,
74
+ 1,
75
+ 2,
76
+ 3,
77
+ 4,
78
+ 5,
79
+ 6,
80
+ 7
81
+ ],
82
+ "nice": 15,
83
+ "rustc": "rustc 1.96.1 (31fca3adb 2026-06-26)\nbinary: rustc\ncommit-hash: 31fca3adb283cc9dfd56b49cdee9a96eb9c96ffd\ncommit-date: 2026-06-26\nhost: x86_64-unknown-linux-gnu\nrelease: 1.96.1\nLLVM version: 22.1.2\n",
84
+ "libc": "glibc 2.43",
85
+ "full_asr": false,
86
+ "promoted": false,
87
+ "default_enabled": false,
88
+ "finished_unix": 1790312844.9562016,
89
+ "results": [
90
+ {
91
+ "kind": "bf16_rebase_rotation_pair",
92
+ "history": 749,
93
+ "heads": 32,
94
+ "dim": 64,
95
+ "delta": -152,
96
+ "displaced_64mib": false,
97
+ "reference_seconds": [
98
+ 0.002228111,
99
+ 0.001592193,
100
+ 0.001588907,
101
+ 0.001588035,
102
+ 0.001592994,
103
+ 0.001593525,
104
+ 0.002038657,
105
+ 0.001591962,
106
+ 0.001587114,
107
+ 0.001587274,
108
+ 0.001589448
109
+ ],
110
+ "candidate_seconds": [
111
+ 0.000505073,
112
+ 0.000504673,
113
+ 0.000506386,
114
+ 0.000504432,
115
+ 0.000521113,
116
+ 0.000504692,
117
+ 0.001189211,
118
+ 0.000504072,
119
+ 0.000506316,
120
+ 0.000506105,
121
+ 0.000504261
122
+ ],
123
+ "paired_median_speedup": 3.1481646683794846,
124
+ "pairs": 11,
125
+ "output_bits_exact": true,
126
+ "full_cache_operation": false
127
+ },
128
+ {
129
+ "kind": "bf16_rebase_rotation_pair",
130
+ "history": 749,
131
+ "heads": 32,
132
+ "dim": 64,
133
+ "delta": -152,
134
+ "displaced_64mib": true,
135
+ "reference_seconds": [
136
+ 0.001589869,
137
+ 0.0015904,
138
+ 0.001591812,
139
+ 0.001589678,
140
+ 0.001591952,
141
+ 0.001588326,
142
+ 0.001588045,
143
+ 0.001588145,
144
+ 0.001589288,
145
+ 0.001589257,
146
+ 0.001589879
147
+ ],
148
+ "candidate_seconds": [
149
+ 0.000506015,
150
+ 0.000505734,
151
+ 0.000505575,
152
+ 0.000505223,
153
+ 0.000506996,
154
+ 0.000505104,
155
+ 0.000508099,
156
+ 0.000507758,
157
+ 0.000505564,
158
+ 0.000508048,
159
+ 0.000505884
160
+ ],
161
+ "paired_median_speedup": 3.1427738374805294,
162
+ "pairs": 11,
163
+ "output_bits_exact": true,
164
+ "full_cache_operation": false
165
+ }
166
+ ],
167
+ "source_unchanged": true,
168
+ "test_binary_sha256": "9bf3fd27915c3151249c2ff0bfa4e36df7b4d9ba2432c28749320a9d482ac648",
169
+ "test_binary": "/home/rezo/audio8-q4-recovery-20260924/native-rebase-avx2-v3/target/release/deps/audio8_ternary-07edbc0a53216929",
170
+ "fresh_target_directory": true
171
+ }
execution_profile.json CHANGED
@@ -20,7 +20,7 @@
20
  "silero_model_sha256": "1a153a22f4509e292a94e67d6f9b85e8deb25b4988682b7e174c65279d8788e3",
21
  "source_sha256": "8b6d69400d95de97fc68b918eca6ac18a7cd30f7f38534d55c3e811c2363a19c"
22
  },
23
- "format": "audio8-experimental-execution-v1",
24
  "mlx": {
25
  "bindings": {
26
  "bundle_manifest": "a068c0532c24b208d95de2b02af4533701f21bdb2436936178a35c8e6d219f45",
@@ -79,8 +79,10 @@
79
  "linux-x86_64": {
80
  "binary": "bin/linux-x86_64/audio8-stream",
81
  "bindings": {
82
- "binary": "30486025c4ba0cb6d8f4d094b556fb22dbe7ecd2018caaeda740ed235ff51626",
83
- "model": "d40c393cfdb4fbd231c5fab593d844018b26f80d8a0113c9ae297b8edbee60ad"
 
 
84
  },
85
  "caption": {
86
  "format": "audio8-silero-caption-profile-v1",
@@ -113,11 +115,12 @@
113
  "workers": 8
114
  },
115
  "delay_ms": 240,
 
116
  "first_batch_windows": 1,
117
  "gear": 4,
118
  "nice": null,
119
  "pool_driver": true,
120
- "prefix_mode": "none",
121
  "row_tasks": 4,
122
  "startup": "realtime",
123
  "worker_qos": "default",
 
20
  "silero_model_sha256": "1a153a22f4509e292a94e67d6f9b85e8deb25b4988682b7e174c65279d8788e3",
21
  "source_sha256": "8b6d69400d95de97fc68b918eca6ac18a7cd30f7f38534d55c3e811c2363a19c"
22
  },
23
+ "format": "audio8-experimental-execution-v2",
24
  "mlx": {
25
  "bindings": {
26
  "bundle_manifest": "a068c0532c24b208d95de2b02af4533701f21bdb2436936178a35c8e6d219f45",
 
79
  "linux-x86_64": {
80
  "binary": "bin/linux-x86_64/audio8-stream",
81
  "bindings": {
82
+ "binary": "f10ccbdc33ed5bc73d96516403634cd5551c81a05be823af91060a178a92d2d3",
83
+ "model": "d40c393cfdb4fbd231c5fab593d844018b26f80d8a0113c9ae297b8edbee60ad",
84
+ "source_archive": "fd68ec98f70ea455621adb1318b467cec36221dd9b66212f3e81cf5d92c48692",
85
+ "source_manifest": "70f257fac9ab0a96e116684623e893dad875acefff947adb04b694c9283dc0b8"
86
  },
87
  "caption": {
88
  "format": "audio8-silero-caption-profile-v1",
 
115
  "workers": 8
116
  },
117
  "delay_ms": 240,
118
+ "encoder_tiled_attention": true,
119
  "first_batch_windows": 1,
120
  "gear": 4,
121
  "nice": null,
122
  "pool_driver": true,
123
+ "prefix_mode": "optional",
124
  "row_tasks": 4,
125
  "startup": "realtime",
126
  "worker_qos": "default",
native/src/bin/audio8-stream.rs CHANGED
@@ -38,6 +38,7 @@ struct Options {
38
  prefix_in: Option<String>,
39
  prefix_out: Option<String>,
40
  silero_vad: Option<String>,
 
41
  }
42
  impl Options {
43
  fn token_period_ms(&self) -> u32 {
@@ -88,6 +89,7 @@ impl Options {
88
  prefix_in: None,
89
  prefix_out: None,
90
  silero_vad: None,
 
91
  };
92
  let mut args = args;
93
  let mut seen = std::collections::HashSet::new();
@@ -100,6 +102,7 @@ impl Options {
100
  "--pace-audio" => result.pace = true,
101
  "--trace-windows" => result.trace = true,
102
  "--cache-digest" => result.cache_digest = true,
 
103
  "--workers" | "--batch" | "--first-batch" | "--delay-ms" | "--tasks"
104
  | "--gear" | "--startup" | "--worker-qos" | "--activation" | "--prefix-in"
105
  | "--prefix-out" | "--silero-vad" => {
@@ -135,7 +138,7 @@ impl Options {
135
  }
136
  }
137
  if result.positional.len() != 5 {
138
- return Err("usage: audio8-stream MODEL FRONTEND TOKENIZER INPUT.f32le|- en|zh [--workers 1|2|4|8] [--batch 1|2|4|8|16] [--first-batch 1|2|4|8] [--delay-ms 80|160|240|480] [--startup hf|realtime] [--tasks 1|2|4|8] [--gear 4|6|8] [--worker-qos default|user-initiated] [--activation fp32|a8|a8r|a16|bf16] [--prefix-in FILE | --prefix-out FILE (gear4 only)] [--silero-vad MODEL.onnx] [--pace-audio] [--trace-windows] [--cache-digest]".into());
139
  }
140
  if ![1, 2, 4, 8].contains(&result.workers)
141
  || ![1, 2, 4, 8].contains(&result.tasks)
@@ -174,13 +177,25 @@ impl Options {
174
  "stdin uses actual arrival timing; --pace-audio is a file simulation".into(),
175
  );
176
  }
 
 
 
 
 
177
  if result.silero_vad.is_some() {
178
- if result.startup != StartupPolicy::Realtime || result.delay_ms != 240
179
- || result.gear != 4 || result.batch != 1 || result.activation != "bf16"
180
- || result.prefix_in.is_some() || result.prefix_out.is_some() || result.cache_digest {
181
- return Err("--silero-vad requires realtime/240ms/gear4/batch1/BF16 and no prefix or cache digest".into());
 
 
 
 
 
 
 
 
182
  }
183
- if !cfg!(feature = "silero") { return Err("build with --features silero for the VAD caption route".into()); }
184
  }
185
  Ok(result)
186
  }
@@ -218,7 +233,7 @@ fn run() -> Result<(), Box<dyn std::error::Error>> {
218
  let frontend = MelFixture::from_bytes(&frontend_bytes)?.frontend;
219
  let tokenizer =
220
  VisibleTokenizer::from_bytes(&small_file(&opts.positional[2], 16 * 1024 * 1024)?)?;
221
- let model = ModelWeights::load_with_options(
222
  Path::new(&opts.positional[0]),
223
  ModelLoadOptions {
224
  q3_bitplanes: activation_a8,
@@ -231,13 +246,21 @@ fn run() -> Result<(), Box<dyn std::error::Error>> {
231
  trim_repack_scratch: activation_a8,
232
  },
233
  )?;
 
 
 
 
 
234
  let prefix_key = if opts.prefix_in.is_some() || opts.prefix_out.is_some() {
235
  let hash = prefix_cache::sha256_reader(std::fs::File::open(std::env::current_exe()?)?)?;
 
 
 
236
  let key = PrefixKey::for_model_with_delay(
237
  &model,
238
  prefix_cache::sha256_bytes(&frontend_bytes),
239
  hash,
240
- runtime_identity(&hash, true)?,
241
  language,
242
  opts.first_batch_windows(),
243
  config.delay_tokens,
@@ -272,8 +295,18 @@ fn run() -> Result<(), Box<dyn std::error::Error>> {
272
  }
273
  #[cfg(feature = "silero")]
274
  if let Some(vad_path) = &opts.silero_vad {
275
- return silero_stream::run(&model, &frontend, &tokenizer, &opts.positional[3],
276
- vad_path, language, opts.pace, opts.workers, loading);
 
 
 
 
 
 
 
 
 
 
277
  }
278
  // The pinned realtime adapter supports only80ms. Other trained gears use
279
  // an explicitly experimental native policy derived from1500 encoder frames
@@ -458,6 +491,30 @@ mod tests {
458
  )
459
  }
460
  #[test]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461
  fn activation_precision_is_explicit_and_rejects_unknown_modes() {
462
  assert_eq!(parse("").unwrap().activation, "a8");
463
  assert_eq!(parse("--activation fp32").unwrap().activation, "fp32");
 
38
  prefix_in: Option<String>,
39
  prefix_out: Option<String>,
40
  silero_vad: Option<String>,
41
+ encoder_tiled_attention: bool,
42
  }
43
  impl Options {
44
  fn token_period_ms(&self) -> u32 {
 
89
  prefix_in: None,
90
  prefix_out: None,
91
  silero_vad: None,
92
+ encoder_tiled_attention: false,
93
  };
94
  let mut args = args;
95
  let mut seen = std::collections::HashSet::new();
 
102
  "--pace-audio" => result.pace = true,
103
  "--trace-windows" => result.trace = true,
104
  "--cache-digest" => result.cache_digest = true,
105
+ "--encoder-tiled-attention" => result.encoder_tiled_attention = true,
106
  "--workers" | "--batch" | "--first-batch" | "--delay-ms" | "--tasks"
107
  | "--gear" | "--startup" | "--worker-qos" | "--activation" | "--prefix-in"
108
  | "--prefix-out" | "--silero-vad" => {
 
138
  }
139
  }
140
  if result.positional.len() != 5 {
141
+ return Err("usage: audio8-stream MODEL FRONTEND TOKENIZER INPUT.f32le|- en|zh [--workers 1|2|4|8] [--batch 1|2|4|8|16] [--first-batch 1|2|4|8] [--delay-ms 80|160|240|480] [--startup hf|realtime] [--tasks 1|2|4|8] [--gear 4|6|8] [--worker-qos default|user-initiated] [--activation fp32|a8|a8r|a16|bf16] [--prefix-in FILE | --prefix-out FILE (gear4 only)] [--silero-vad MODEL.onnx] [--encoder-tiled-attention] [--pace-audio] [--trace-windows] [--cache-digest]".into());
142
  }
143
  if ![1, 2, 4, 8].contains(&result.workers)
144
  || ![1, 2, 4, 8].contains(&result.tasks)
 
177
  "stdin uses actual arrival timing; --pace-audio is a file simulation".into(),
178
  );
179
  }
180
+ if result.encoder_tiled_attention
181
+ && (result.silero_vad.is_none() || !cfg!(target_arch = "x86_64"))
182
+ {
183
+ return Err("--encoder-tiled-attention requires the x86 Silero caption route".into());
184
+ }
185
  if result.silero_vad.is_some() {
186
+ if result.startup != StartupPolicy::Realtime
187
+ || result.delay_ms != 240
188
+ || result.gear != 4
189
+ || result.batch != 1
190
+ || result.activation != "bf16"
191
+ || result.first_batch_windows() != 1
192
+ || result.cache_digest
193
+ {
194
+ return Err("--silero-vad requires realtime/240ms/gear4/first-batch1/batch1/BF16 and no cache digest".into());
195
+ }
196
+ if !cfg!(feature = "silero") {
197
+ return Err("build with --features silero for the VAD caption route".into());
198
  }
 
199
  }
200
  Ok(result)
201
  }
 
233
  let frontend = MelFixture::from_bytes(&frontend_bytes)?.frontend;
234
  let tokenizer =
235
  VisibleTokenizer::from_bytes(&small_file(&opts.positional[2], 16 * 1024 * 1024)?)?;
236
+ let mut model = ModelWeights::load_with_options(
237
  Path::new(&opts.positional[0]),
238
  ModelLoadOptions {
239
  q3_bitplanes: activation_a8,
 
246
  trim_repack_scratch: activation_a8,
247
  },
248
  )?;
249
+ if opts.encoder_tiled_attention {
250
+ for layer in &mut model.encoders {
251
+ layer.enable_tiled_attention(true);
252
+ }
253
+ }
254
  let prefix_key = if opts.prefix_in.is_some() || opts.prefix_out.is_some() {
255
  let hash = prefix_cache::sha256_reader(std::fs::File::open(std::env::current_exe()?)?)?;
256
+ let mut execution = runtime_identity(&hash, true)?.to_vec();
257
+ execution.extend_from_slice(b"\0encoder_tiled_attention=");
258
+ execution.push(u8::from(opts.encoder_tiled_attention));
259
  let key = PrefixKey::for_model_with_delay(
260
  &model,
261
  prefix_cache::sha256_bytes(&frontend_bytes),
262
  hash,
263
+ prefix_cache::sha256_bytes(&execution),
264
  language,
265
  opts.first_batch_windows(),
266
  config.delay_tokens,
 
295
  }
296
  #[cfg(feature = "silero")]
297
  if let Some(vad_path) = &opts.silero_vad {
298
+ return silero_stream::run(
299
+ &model,
300
+ &frontend,
301
+ &tokenizer,
302
+ &opts.positional[3],
303
+ vad_path,
304
+ language,
305
+ opts.pace,
306
+ opts.workers,
307
+ prefix_key.as_ref().zip(opts.prefix_in.as_deref()),
308
+ loading,
309
+ );
310
  }
311
  // The pinned realtime adapter supports only80ms. Other trained gears use
312
  // an explicitly experimental native policy derived from1500 encoder frames
 
491
  )
492
  }
493
  #[test]
494
+ fn encoder_tiles_are_opt_in_and_scoped_to_x86_caption_mode() {
495
+ assert!(!parse("").unwrap().encoder_tiled_attention);
496
+ assert!(parse("--encoder-tiled-attention").is_err());
497
+ let flags = "--encoder-tiled-attention --silero-vad vad.onnx --activation bf16 --startup realtime --delay-ms 240 --first-batch 1 --batch 1";
498
+ if cfg!(all(target_arch = "x86_64", feature = "silero")) {
499
+ assert!(parse(flags).unwrap().encoder_tiled_attention);
500
+ } else {
501
+ assert!(parse(flags).is_err());
502
+ }
503
+ assert!(parse(&format!("{flags} --encoder-tiled-attention")).is_err());
504
+ }
505
+ #[test]
506
+ fn caption_prefix_import_and_export_are_explicit_and_profile_bound() {
507
+ let flags = "--silero-vad vad.onnx --activation bf16 --startup realtime --delay-ms 240 --first-batch 1 --batch 1";
508
+ for mode in ["--prefix-in saved.a8p", "--prefix-out saved.a8p"] {
509
+ assert_eq!(
510
+ parse(&format!("{flags} {mode}")).is_ok(),
511
+ cfg!(feature = "silero")
512
+ );
513
+ }
514
+ assert!(parse(&format!("{flags} --prefix-in a --prefix-out b")).is_err());
515
+ assert!(parse("--silero-vad vad.onnx --activation bf16 --startup realtime --delay-ms 240 --first-batch 2 --batch 1").is_err());
516
+ }
517
+ #[test]
518
  fn activation_precision_is_explicit_and_rejects_unknown_modes() {
519
  assert_eq!(parse("").unwrap().activation, "a8");
520
  assert_eq!(parse("--activation fp32").unwrap().activation, "fp32");
native/src/bin/support/silero_stream.rs CHANGED
@@ -5,6 +5,7 @@ use audio8_ternary::{
5
  frontend::LogMel,
6
  gated_audio::{GatedAudio, POLICY_NAME},
7
  model_loader::ModelWeights,
 
8
  tokenizer::VisibleTokenizer,
9
  Error,
10
  };
@@ -16,16 +17,43 @@ struct Cpu<'a> {
16
  eos: usize,
17
  session: Option<Session<'a>>,
18
  first: bool,
 
 
 
19
  }
20
  impl<'a> Cpu<'a> {
21
- fn fresh(&self) -> audio8_ternary::Result<Session<'a>> {
22
- let mut session =
23
- Session::new_with_bf16_cache(self.model, self.frontend, 3, 4, 375, self.eos, true)?;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  session.enable_rolling(RollingConfig::audio8_default())?;
25
  Ok(session)
26
  }
27
  }
28
  impl Engine for Cpu<'_> {
 
 
 
29
  fn reset(&mut self) -> audio8_ternary::Result<()> {
30
  if self.first {
31
  self.first = false;
@@ -43,6 +71,13 @@ impl Engine for Cpu<'_> {
43
  .as_mut()
44
  .ok_or_else(|| Error("CPU caption session absent".into()))?;
45
  let r = session.window(audio, prompt)?;
 
 
 
 
 
 
 
46
  Ok(Token {
47
  id: r.token_id,
48
  logit: r.logit,
@@ -65,6 +100,7 @@ pub fn run(
65
  language: u32,
66
  pace: bool,
67
  workers: usize,
 
68
  loading: Instant,
69
  ) -> Result<(), Box<dyn std::error::Error>> {
70
  let mut vad = SileroVad::load(Path::new(vad_path))?;
@@ -74,6 +110,9 @@ pub fn run(
74
  eos: tokenizer.special_ids().eos as usize,
75
  session: None,
76
  first: true,
 
 
 
77
  };
78
  engine.session = Some(engine.fresh()?);
79
  let reader: Box<dyn Read + Send> = if input == "-" {
@@ -81,9 +120,11 @@ pub fn run(
81
  } else {
82
  Box::new(std::fs::File::open(input)?)
83
  };
84
- super::write_event(&format!("{{\"kind\":\"caption_stream_ready\",\"backend\":\"native_cpu\",\"activation\":\"bf16\",\"activation_backend\":{},\"workers\":{workers},\"model_body_sha256\":{},\"weights_resident_bytes\":{},\"startup\":\"realtime18\",\"delay_ms\":240,\"batch\":1,\"silero_sha256\":{},\"silence_policy\":{},\"input_mode\":{},\"load_seconds\":{},\"production_accuracy_approved\":false}}",
85
  caption_stream::quoted(audio8_ternary::uniform::bf16_backend()),
86
  caption_stream::quoted(&super::common::digest_hex(&model.stream_body_sha256)),model.resident_weight_payload_bytes,
 
 
87
  caption_stream::quoted(audio8_silero_tract_probe::MODEL_SHA256),caption_stream::quoted(POLICY_NAME),
88
  caption_stream::quoted(if input=="-" {"stdin"} else if pace {"paced_file"} else {"unpaced_file"}),loading.elapsed().as_secs_f64()))?;
89
  let started = Instant::now();
 
5
  frontend::LogMel,
6
  gated_audio::{GatedAudio, POLICY_NAME},
7
  model_loader::ModelWeights,
8
+ prefix_cache::PrefixKey,
9
  tokenizer::VisibleTokenizer,
10
  Error,
11
  };
 
17
  eos: usize,
18
  session: Option<Session<'a>>,
19
  first: bool,
20
+ phases: Option<[f64; 5]>,
21
+ prefix: Option<(&'a PrefixKey, &'a str)>,
22
+ prefix_body: Option<[u8; 32]>,
23
  }
24
  impl<'a> Cpu<'a> {
25
+ fn fresh(&mut self) -> audio8_ternary::Result<Session<'a>> {
26
+ let mut session = if let Some((key, path)) = self.prefix {
27
+ // Read directly into final cache storage, without retaining a second
28
+ // artifact-sized copy. Every reset revalidates identity and checksum.
29
+ let file = std::fs::File::open(path).map_err(|e| Error(e.to_string()))?;
30
+ let (session, summary) = Session::from_constant_prefix(
31
+ self.model,
32
+ self.frontend,
33
+ 375,
34
+ self.eos,
35
+ key,
36
+ std::io::BufReader::new(file),
37
+ )?;
38
+ if self
39
+ .prefix_body
40
+ .is_some_and(|expected| expected != summary.body_sha256)
41
+ {
42
+ return Err(Error("caption prefix body changed between segments".into()));
43
+ }
44
+ self.prefix_body = Some(summary.body_sha256);
45
+ session
46
+ } else {
47
+ Session::new_with_bf16_cache(self.model, self.frontend, 3, 4, 375, self.eos, true)?
48
+ };
49
  session.enable_rolling(RollingConfig::audio8_default())?;
50
  Ok(session)
51
  }
52
  }
53
  impl Engine for Cpu<'_> {
54
+ fn last_phase_seconds(&self) -> Option<[f64; 5]> {
55
+ self.phases
56
+ }
57
  fn reset(&mut self) -> audio8_ternary::Result<()> {
58
  if self.first {
59
  self.first = false;
 
71
  .as_mut()
72
  .ok_or_else(|| Error("CPU caption session absent".into()))?;
73
  let r = session.window(audio, prompt)?;
74
+ self.phases = Some([
75
+ r.frontend_seconds,
76
+ r.encoder_seconds,
77
+ r.projector_seconds,
78
+ r.decoder_seconds,
79
+ r.head_seconds,
80
+ ]);
81
  Ok(Token {
82
  id: r.token_id,
83
  logit: r.logit,
 
100
  language: u32,
101
  pace: bool,
102
  workers: usize,
103
+ prefix: Option<(&PrefixKey, &str)>,
104
  loading: Instant,
105
  ) -> Result<(), Box<dyn std::error::Error>> {
106
  let mut vad = SileroVad::load(Path::new(vad_path))?;
 
110
  eos: tokenizer.special_ids().eos as usize,
111
  session: None,
112
  first: true,
113
+ phases: None,
114
+ prefix,
115
+ prefix_body: None,
116
  };
117
  engine.session = Some(engine.fresh()?);
118
  let reader: Box<dyn Read + Send> = if input == "-" {
 
120
  } else {
121
  Box::new(std::fs::File::open(input)?)
122
  };
123
+ super::write_event(&format!("{{\"kind\":\"caption_stream_ready\",\"backend\":\"native_cpu\",\"activation\":\"bf16\",\"activation_backend\":{},\"workers\":{workers},\"model_body_sha256\":{},\"weights_resident_bytes\":{},\"startup\":\"realtime18\",\"delay_ms\":240,\"batch\":1,\"encoder_attention\":{},\"constant_prefix_used\":{},\"constant_prefix_body_sha256\":{},\"silero_sha256\":{},\"silence_policy\":{},\"input_mode\":{},\"load_seconds\":{},\"production_accuracy_approved\":false}}",
124
  caption_stream::quoted(audio8_ternary::uniform::bf16_backend()),
125
  caption_stream::quoted(&super::common::digest_hex(&model.stream_body_sha256)),model.resident_weight_payload_bytes,
126
+ caption_stream::quoted(if model.encoders.iter().all(|layer| layer.tiled_attention_enabled()) {"x86_four_query_tiled"} else {"per_frame_heads"}),
127
+ engine.prefix.is_some(), engine.prefix_body.map(|h| caption_stream::quoted(&super::common::digest_hex(&h))).unwrap_or_else(|| "null".to_string()),
128
  caption_stream::quoted(audio8_silero_tract_probe::MODEL_SHA256),caption_stream::quoted(POLICY_NAME),
129
  caption_stream::quoted(if input=="-" {"stdin"} else if pace {"paced_file"} else {"unpaced_file"}),loading.elapsed().as_secs_f64()))?;
130
  let started = Instant::now();
native/src/caption_stream.rs CHANGED
@@ -23,6 +23,11 @@ pub trait Engine {
23
  /// Greedy output must suppress EOS and use the tokenizer's model vocabulary.
24
  /// A failure terminates this stream; the caller must not resume its state.
25
  fn step(&mut self, audio: &[f32], prompt: &[u32]) -> Result<Token>;
 
 
 
 
 
26
  }
27
  #[derive(Debug, Default)]
28
  pub struct Summary {
@@ -135,6 +140,15 @@ where
135
  {
136
  return Err(err("caption model token/EOS-suppression contract"));
137
  }
 
 
 
 
 
 
 
 
 
138
  summary.model_seconds += work;
139
  summary.peak_cache_bytes = summary.peak_cache_bytes.max(token.cache_bytes);
140
  ids.update(token.id.to_le_bytes());
@@ -155,7 +169,7 @@ where
155
  } else {
156
  "null".into()
157
  };
158
- emit(&format!("{{\"kind\":\"caption_window\",\"index\":{},\"segment\":{},\"segment_index\":{},\"token_id\":{},\"logit_bits\":{},\"seconds\":{seconds},\"source_dependency_sample\":{},\"available_source_sample\":{},\"eof_drain\":{},\"queue_seconds\":{queue},\"work_seconds\":{work},\"cache_bytes\":{},\"rolling_trims\":{}}}",
159
  summary.emissions,w.segment.id,w.index,token.id,token.logit.to_bits(),w.nominal_source_end_sample,w.available_sample,w.eof_drain,token.cache_bytes,token.trims))?;
160
  previous = Some(token.id);
161
  local_index += 1;
@@ -268,8 +282,12 @@ mod tests {
268
  calls: Vec<(usize, u64, Vec<u32>, usize)>,
269
  bad: Option<Bad>,
270
  fail_reset: bool,
 
271
  }
272
  impl Engine for Mock {
 
 
 
273
  fn reset(&mut self) -> Result<()> {
274
  if self.fail_reset {
275
  return Err(err("mock reset failure"));
@@ -330,6 +348,39 @@ mod tests {
330
  line.starts_with(&format!("{{\"kind\":\"{value}\""))
331
  }
332
  #[test]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
333
  fn resets_restore_prompt_feedback_and_isolate_utf8_without_losing_tails() {
334
  // Last speech in frame1; first segment closes at frame64 (33,280 samples).
335
  // It has26 complete model windows. The second segment starts after a gap.
 
23
  /// Greedy output must suppress EOS and use the tokenizer's model vocabulary.
24
  /// A failure terminates this stream; the caller must not resume its state.
25
  fn step(&mut self, audio: &[f32], prompt: &[u32]) -> Result<Token>;
26
+ /// Existing phase timers from the last step, including rolling work.
27
+ /// Order: frontend, encoder, projector, decoder, output head.
28
+ fn last_phase_seconds(&self) -> Option<[f64; 5]> {
29
+ None
30
+ }
31
  }
32
  #[derive(Debug, Default)]
33
  pub struct Summary {
 
140
  {
141
  return Err(err("caption model token/EOS-suppression contract"));
142
  }
143
+ let phases = match engine.last_phase_seconds() {
144
+ Some(values) => {
145
+ if values.iter().any(|v| !v.is_finite() || *v < 0.) {
146
+ return Err(err("invalid caption phase timing"));
147
+ }
148
+ format!(",\"phase_seconds\":{values:?}")
149
+ }
150
+ None => String::new(),
151
+ };
152
  summary.model_seconds += work;
153
  summary.peak_cache_bytes = summary.peak_cache_bytes.max(token.cache_bytes);
154
  ids.update(token.id.to_le_bytes());
 
169
  } else {
170
  "null".into()
171
  };
172
+ emit(&format!("{{\"kind\":\"caption_window\",\"index\":{},\"segment\":{},\"segment_index\":{},\"token_id\":{},\"logit_bits\":{},\"seconds\":{seconds},\"source_dependency_sample\":{},\"available_source_sample\":{},\"eof_drain\":{},\"queue_seconds\":{queue},\"work_seconds\":{work},\"cache_bytes\":{},\"rolling_trims\":{}{phases}}}",
173
  summary.emissions,w.segment.id,w.index,token.id,token.logit.to_bits(),w.nominal_source_end_sample,w.available_sample,w.eof_drain,token.cache_bytes,token.trims))?;
174
  previous = Some(token.id);
175
  local_index += 1;
 
282
  calls: Vec<(usize, u64, Vec<u32>, usize)>,
283
  bad: Option<Bad>,
284
  fail_reset: bool,
285
+ phases: Option<[f64; 5]>,
286
  }
287
  impl Engine for Mock {
288
+ fn last_phase_seconds(&self) -> Option<[f64; 5]> {
289
+ self.phases
290
+ }
291
  fn reset(&mut self) -> Result<()> {
292
  if self.fail_reset {
293
  return Err(err("mock reset failure"));
 
348
  line.starts_with(&format!("{{\"kind\":\"{value}\""))
349
  }
350
  #[test]
351
+ fn phase_reporting_preserves_token_feedback_and_rejects_invalid_values() {
352
+ let mut digests = Vec::new();
353
+ for phases in [None, Some([0.001; 5]), Some([f64::NAN; 5]), Some([-1.; 5])] {
354
+ let mut engine = Mock {
355
+ phases,
356
+ ..Mock::default()
357
+ };
358
+ let mut events = Vec::new();
359
+ let result = run(
360
+ source(pcm(2, 0), |_| true),
361
+ &mut engine,
362
+ &TOKENIZER,
363
+ 151668,
364
+ Instant::now(),
365
+ false,
366
+ |s| {
367
+ events.push(s.to_owned());
368
+ Ok(())
369
+ },
370
+ );
371
+ if phases.is_some_and(|v| !v[0].is_finite() || v[0] < 0.) {
372
+ assert!(result.is_err());
373
+ assert_eq!(events.len(), 1);
374
+ } else {
375
+ digests.push(result.unwrap().generated_ids_sha256);
376
+ for row in events.iter().filter(|s| kind(s, "caption_window")) {
377
+ assert_eq!(row.contains("\"phase_seconds\""), phases.is_some());
378
+ }
379
+ }
380
+ }
381
+ assert_eq!(digests[0], digests[1]);
382
+ }
383
+ #[test]
384
  fn resets_restore_prompt_feedback_and_isolate_utf8_without_losing_tails() {
385
  // Last speech in frame1; first segment closes at frame64 (33,280 samples).
386
  // It has26 complete model windows. The second segment starts after a gap.
native/src/encoder_tiled_attention.rs CHANGED
@@ -10,6 +10,10 @@ use rayon::prelude::*;
10
  const DIM: usize = 64;
11
  const TILE: usize = 4;
12
 
 
 
 
 
13
  fn cache_row<'a>(
14
  old: &'a [u16],
15
  recent: &'a [u16],
@@ -218,7 +222,11 @@ fn dot_four(queries: &[[f32; DIM]; TILE], key: &[u16]) -> [f32; TILE] {
218
  unsafe {
219
  neon_dot_four(queries, key)
220
  }
221
- #[cfg(not(target_arch = "aarch64"))]
 
 
 
 
222
  {
223
  let mut sums = [[0.0; 4]; TILE];
224
  for (col, &word) in key.iter().enumerate() {
@@ -234,6 +242,12 @@ fn dot_four(queries: &[[f32; DIM]; TILE], key: &[u16]) -> [f32; TILE] {
234
  #[inline]
235
  fn add_four(output: &mut [[f32; DIM]; TILE], values: &[u16], probability: [f32; TILE], mask: u8) {
236
  debug_assert_eq!(values.len(), DIM);
 
 
 
 
 
 
237
  #[cfg(target_arch = "aarch64")]
238
  // SAFETY: fixed output arrays and validated64-word value row.
239
  unsafe {
 
10
  const DIM: usize = 64;
11
  const TILE: usize = 4;
12
 
13
+ #[cfg(target_arch = "x86_64")]
14
+ #[path = "encoder_tiled_attention_x86.rs"]
15
+ mod x86;
16
+
17
  fn cache_row<'a>(
18
  old: &'a [u16],
19
  recent: &'a [u16],
 
222
  unsafe {
223
  neon_dot_four(queries, key)
224
  }
225
+ #[cfg(target_arch = "x86_64")]
226
+ {
227
+ x86::dot_four(queries, key)
228
+ }
229
+ #[cfg(not(any(target_arch = "aarch64", target_arch = "x86_64")))]
230
  {
231
  let mut sums = [[0.0; 4]; TILE];
232
  for (col, &word) in key.iter().enumerate() {
 
242
  #[inline]
243
  fn add_four(output: &mut [[f32; DIM]; TILE], values: &[u16], probability: [f32; TILE], mask: u8) {
244
  debug_assert_eq!(values.len(), DIM);
245
+ #[cfg(target_arch = "x86_64")]
246
+ if is_x86_feature_detected!("avx2") {
247
+ // SAFETY: AVX2 was detected and the helper checks the fixed row length.
248
+ unsafe { x86::add_four_avx2(output, values, probability, mask) };
249
+ return;
250
+ }
251
  #[cfg(target_arch = "aarch64")]
252
  // SAFETY: fixed output arrays and validated64-word value row.
253
  unsafe {
native/src/encoder_tiled_attention_tests.rs CHANGED
@@ -341,6 +341,130 @@ fn tiled_layer_preserves_rolling_cache_and_unsupported_fallback() {
341
  }
342
  }
343
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344
  #[cfg(all(
345
  feature = "parallel",
346
  feature = "kleidiai",
 
341
  }
342
  }
343
 
344
+ #[cfg(all(target_arch = "x86_64", feature = "parallel", feature = "x86-vnni"))]
345
+ #[test]
346
+ #[ignore = "fixed actual BF16 layer pairs; requires a quiet eight-core CPU slot"]
347
+ fn actual_x86_bf16_tiled_encoder_pairs() {
348
+ use crate::encoder::EncoderFixture;
349
+ use crate::uniform::{
350
+ configure_activation_bf16, configure_row_tasks_per_worker, configure_row_threads,
351
+ run_in_row_pool,
352
+ };
353
+ use sha2::{Digest, Sha256};
354
+ use std::{hint::black_box, time::Instant};
355
+ configure_row_tasks_per_worker(4).unwrap();
356
+ configure_row_threads(8).unwrap();
357
+ configure_activation_bf16(true).unwrap();
358
+ assert_eq!(crate::uniform::bf16_backend(), "avx512_bf16_q4");
359
+ let bytes = std::fs::read(std::env::var("AUDIO8_ENCODER_FIXTURE").unwrap()).unwrap();
360
+ let digest = format!("{:x}", Sha256::digest(&bytes));
361
+ assert_eq!(
362
+ digest,
363
+ "6ca1c778dfd096672362ea4b329c3d47fdf37cf68e812e990cb02891bb45560a"
364
+ );
365
+ let fixture = EncoderFixture::from_bytes(&bytes).unwrap();
366
+ drop(bytes);
367
+ let old = &fixture.layer;
368
+ let mut new = EncoderLayer::new(
369
+ old.config.clone(),
370
+ old.attention_norm.clone(),
371
+ old.final_norm.clone(),
372
+ old.projections.clone(),
373
+ )
374
+ .unwrap();
375
+ new.enable_tiled_attention(true);
376
+ assert!(!old.tiled_attention_enabled());
377
+ assert_eq!(old.packed_weight_bytes(), new.packed_weight_bytes());
378
+ println!("{{\"kind\":\"x86_tiled_protocol\",\"fixture_sha256\":\"{digest}\",\"workers\":8,\"tasks\":4,\"activation\":\"BF16\",\"cache\":\"BF16\",\"warmup_pairs\":2,\"measured_pairs\":11,\"default_enabled\":false,\"full_asr\":false}}");
379
+ run_in_row_pool(|| {
380
+ let input_for = |frames: usize| -> Vec<f32> {
381
+ (0..frames)
382
+ .flat_map(|i| fixture.steps[i % fixture.steps.len()].input.iter().copied())
383
+ .collect()
384
+ };
385
+ let mut base = old.new_cache_bf16(2143).unwrap();
386
+ let mut timed = Vec::new();
387
+ for history in [0, 1, 68, 749] {
388
+ while base.len() < history {
389
+ let count = (history - base.len()).min(128);
390
+ old.step_chunk(&input_for(count), count, base.next_position, &mut base)
391
+ .unwrap();
392
+ }
393
+ for frames in [1, 3, 4, 5, 8, 16, 17] {
394
+ let input = input_for(frames);
395
+ let mut a = fork_cache(&base);
396
+ let mut b = fork_cache(&base);
397
+ let capacity = b.kv_allocated_bytes();
398
+ let expected = old
399
+ .step_chunk(&input, frames, base.next_position, &mut a)
400
+ .unwrap();
401
+ let actual = new
402
+ .step_chunk(&input, frames, base.next_position, &mut b)
403
+ .unwrap();
404
+ exact(&actual, &expected);
405
+ assert_eq!(a, b);
406
+ assert_eq!(capacity, b.kv_allocated_bytes());
407
+ }
408
+ if history >= 68 {
409
+ timed.push((history, fork_cache(&base)));
410
+ }
411
+ }
412
+ let mut rebased = fork_cache(&base);
413
+ old.rebase_cache(&mut rebased, 152).unwrap();
414
+ let mut a = fork_cache(&rebased);
415
+ let mut b = fork_cache(&rebased);
416
+ exact(
417
+ &old.step_chunk(&input_for(4), 4, rebased.next_position, &mut a)
418
+ .unwrap(),
419
+ &new.step_chunk(&input_for(4), 4, rebased.next_position, &mut b)
420
+ .unwrap(),
421
+ );
422
+ assert_eq!(a, b);
423
+ println!("{{\"kind\":\"x86_tiled_actual_parity\",\"cases\":29,\"output_bits_equal\":true,\"cache_exact_equal\":true}}");
424
+ let mut eviction = vec![0u8; 64 * 1024 * 1024];
425
+ for (history, base) in timed {
426
+ for displaced in [false, true] {
427
+ let input = input_for(4);
428
+ let mut times: [Vec<f64>; 2] = std::array::from_fn(|_| Vec::new());
429
+ for round in 0..13 {
430
+ let mut results = Vec::new();
431
+ for mode in if round % 2 == 0 { [0, 1] } else { [1, 0] } {
432
+ let mut cache = fork_cache(&base);
433
+ let capacity = cache.kv_allocated_bytes();
434
+ if displaced {
435
+ let mut total = 0u64;
436
+ for byte in eviction.iter_mut().step_by(64) {
437
+ *byte = byte.wrapping_add(1);
438
+ total += u64::from(*byte);
439
+ }
440
+ black_box(total);
441
+ }
442
+ let layer = if mode == 0 { old } else { &new };
443
+ let clock = Instant::now();
444
+ let output = layer
445
+ .step_chunk(black_box(&input), 4, base.next_position, &mut cache)
446
+ .unwrap();
447
+ let elapsed = clock.elapsed().as_secs_f64();
448
+ black_box(&output);
449
+ if round >= 2 {
450
+ times[mode].push(elapsed);
451
+ }
452
+ assert_eq!(capacity, cache.kv_allocated_bytes());
453
+ results.push((output, cache));
454
+ }
455
+ exact(&results[0].0, &results[1].0);
456
+ assert_eq!(results[0].1, results[1].1);
457
+ }
458
+ let mut ratios: Vec<f64> =
459
+ times[0].iter().zip(&times[1]).map(|(a, b)| a / b).collect();
460
+ let wins = ratios.iter().filter(|x| **x > 1.).count();
461
+ ratios.sort_by(f64::total_cmp);
462
+ println!("{{\"kind\":\"x86_tiled_actual_pair\",\"history\":{history},\"frames\":4,\"displaced_64mib\":{displaced},\"reference_seconds\":{:?},\"candidate_seconds\":{:?},\"paired_median_speedup\":{},\"wins\":{wins},\"pairs\":11,\"exact_output_and_cache\":true}}",times[0],times[1],ratios[5]);
463
+ }
464
+ }
465
+ });
466
+ }
467
+
468
  #[cfg(all(
469
  feature = "parallel",
470
  feature = "kleidiai",
native/src/encoder_tiled_attention_x86.rs ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ //! Reuse one widened historical row across four queries. Preserve each
2
+ //! query's original four chronological dot lanes and each value channel's
3
+ //! chronological additions. No FMA or reassociated reduction.
4
+ use super::{DIM, TILE};
5
+ use std::arch::x86_64::*;
6
+
7
+ #[inline]
8
+ pub(super) fn dot_four(queries: &[[f32; DIM]; TILE], key: &[u16]) -> [f32; TILE] {
9
+ assert_eq!(key.len(), DIM);
10
+ // SAFETY: x86_64 guarantees SSE2; all query/key spans contain64 elements.
11
+ unsafe { dot_four_sse2(queries, key) }
12
+ }
13
+
14
+ #[target_feature(enable = "sse2")]
15
+ unsafe fn dot_four_sse2(queries: &[[f32; DIM]; TILE], key: &[u16]) -> [f32; TILE] {
16
+ let mut sums = [_mm_setzero_ps(); TILE];
17
+ for col in (0..DIM).step_by(4) {
18
+ let packed = _mm_loadl_epi64(key.as_ptr().add(col).cast());
19
+ let value = _mm_castsi128_ps(_mm_slli_epi32::<16>(_mm_unpacklo_epi16(
20
+ packed,
21
+ _mm_setzero_si128(),
22
+ )));
23
+ for row in 0..TILE {
24
+ sums[row] = _mm_add_ps(
25
+ sums[row],
26
+ _mm_mul_ps(_mm_loadu_ps(queries[row].as_ptr().add(col)), value),
27
+ );
28
+ }
29
+ }
30
+ sums.map(|sum| {
31
+ let mut lanes = [0.0f32; 4];
32
+ _mm_storeu_ps(lanes.as_mut_ptr(), sum);
33
+ (lanes[0] + lanes[1]) + (lanes[2] + lanes[3])
34
+ })
35
+ }
36
+
37
+ #[target_feature(enable = "avx2")]
38
+ pub(super) unsafe fn add_four_avx2(
39
+ output: &mut [[f32; DIM]; TILE],
40
+ values: &[u16],
41
+ probability: [f32; TILE],
42
+ mask: u8,
43
+ ) {
44
+ assert_eq!(values.len(), DIM);
45
+ let p = probability.map(|v| _mm256_set1_ps(v));
46
+ for col in (0..DIM).step_by(8) {
47
+ let packed = _mm_loadu_si128(values.as_ptr().add(col).cast());
48
+ let value = _mm256_castsi256_ps(_mm256_slli_epi32::<16>(_mm256_cvtepu16_epi32(packed)));
49
+ for row in 0..TILE {
50
+ if mask & (1 << row) != 0 {
51
+ let ptr = output[row].as_mut_ptr().add(col);
52
+ _mm256_storeu_ps(
53
+ ptr,
54
+ _mm256_add_ps(_mm256_loadu_ps(ptr), _mm256_mul_ps(p[row], value)),
55
+ );
56
+ }
57
+ }
58
+ }
59
+ }
native/src/kv_rebase_x86.rs ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ //! Exact BF16 split-half rotation. Both products and their sum are separately
2
+ //! rounded, matching the scalar cache path for finite caches, including signed zeros.
3
+ use super::{decode_bf16, round_bf16};
4
+ use std::arch::x86_64::*;
5
+
6
+ #[target_feature(enable = "avx2")]
7
+ unsafe fn rounded(value: __m256) -> __m256 {
8
+ let bits = _mm256_castps_si256(value);
9
+ let absolute = _mm256_and_si256(bits, _mm256_set1_epi32(0x7fffffff));
10
+ let nan = _mm256_cmpgt_epi32(absolute, _mm256_set1_epi32(0x7f800000));
11
+ let bias = _mm256_add_epi32(
12
+ _mm256_set1_epi32(0x7fff),
13
+ _mm256_and_si256(_mm256_srli_epi32::<16>(bits), _mm256_set1_epi32(1)),
14
+ );
15
+ let mask = _mm256_set1_epi32(0xffff0000u32 as i32);
16
+ let finite = _mm256_and_si256(_mm256_add_epi32(bits, bias), mask);
17
+ let quiet = _mm256_or_si256(_mm256_and_si256(bits, mask), _mm256_set1_epi32(0x00400000));
18
+ _mm256_castsi256_ps(_mm256_blendv_epi8(finite, quiet, nan))
19
+ }
20
+
21
+ #[target_feature(enable = "avx2")]
22
+ unsafe fn load(words: *const u16) -> __m256 {
23
+ _mm256_castsi256_ps(_mm256_slli_epi32::<16>(_mm256_cvtepu16_epi32(
24
+ _mm_loadu_si128(words.cast()),
25
+ )))
26
+ }
27
+
28
+ #[target_feature(enable = "avx2")]
29
+ unsafe fn store(words: *mut u16, value: __m256) {
30
+ let high = _mm256_srli_epi32::<16>(_mm256_castps_si256(value));
31
+ let packed = _mm_packus_epi32(
32
+ _mm256_castsi256_si128(high),
33
+ _mm256_extracti128_si256::<1>(high),
34
+ );
35
+ _mm_storeu_si128(words.cast(), packed);
36
+ }
37
+
38
+ /// Caller must detect AVX2. Writes only the caller's private prospective K tail;
39
+ /// the existing whole-cache validation and atomic commit remain outside here.
40
+ #[target_feature(enable = "avx2")]
41
+ pub(super) unsafe fn rotate(words: &mut [u16], dim: usize, coefficients: &[(f32, f32)]) {
42
+ assert!(dim > 0 && dim % 2 == 0 && words.len() % dim == 0 && coefficients.len() == dim / 2);
43
+ let half = dim / 2;
44
+ let cos: Vec<f32> = coefficients
45
+ .iter()
46
+ .map(|c| decode_bf16(round_bf16(c.0)))
47
+ .collect();
48
+ let sin: Vec<f32> = coefficients
49
+ .iter()
50
+ .map(|c| decode_bf16(round_bf16(c.1)))
51
+ .collect();
52
+ let sign = _mm256_castsi256_ps(_mm256_set1_epi32(i32::MIN));
53
+ for head in words.chunks_exact_mut(dim) {
54
+ let mut i = 0;
55
+ while i + 8 <= half {
56
+ let left = load(head.as_ptr().add(i));
57
+ let right = load(head.as_ptr().add(i + half));
58
+ let c = _mm256_loadu_ps(cos.as_ptr().add(i));
59
+ let s = _mm256_loadu_ps(sin.as_ptr().add(i));
60
+ let a = rounded(_mm256_add_ps(
61
+ rounded(_mm256_mul_ps(left, c)),
62
+ rounded(_mm256_mul_ps(_mm256_xor_ps(right, sign), s)),
63
+ ));
64
+ let b = rounded(_mm256_add_ps(
65
+ rounded(_mm256_mul_ps(right, c)),
66
+ rounded(_mm256_mul_ps(left, s)),
67
+ ));
68
+ store(head.as_mut_ptr().add(i), a);
69
+ store(head.as_mut_ptr().add(i + half), b);
70
+ i += 8;
71
+ }
72
+ while i < half {
73
+ let left = decode_bf16(head[i]);
74
+ let right = decode_bf16(head[i + half]);
75
+ let product = |a, b| decode_bf16(round_bf16(a * b));
76
+ head[i] = round_bf16(product(left, cos[i]) + product(-right, sin[i]));
77
+ head[i + half] = round_bf16(product(right, cos[i]) + product(left, sin[i]));
78
+ i += 1;
79
+ }
80
+ }
81
+ }
82
+
83
+ #[cfg(test)]
84
+ mod tests {
85
+ use super::*;
86
+ fn scalar(words: &mut [u16], dim: usize, coefficients: &[(f32, f32)]) {
87
+ let half = dim / 2;
88
+ for head in words.chunks_exact_mut(dim) {
89
+ for (i, &(c, s)) in coefficients.iter().enumerate() {
90
+ let c = decode_bf16(round_bf16(c));
91
+ let s = decode_bf16(round_bf16(s));
92
+ let l = decode_bf16(head[i]);
93
+ let r = decode_bf16(head[i + half]);
94
+ let p = |a, b| decode_bf16(round_bf16(a * b));
95
+ head[i] = round_bf16(p(l, c) + p(-r, s));
96
+ head[i + half] = round_bf16(p(r, c) + p(l, s));
97
+ }
98
+ }
99
+ }
100
+ #[test]
101
+ fn all_finite_bf16_patterns_and_rotation_tails_match_scalar() {
102
+ if !is_x86_feature_detected!("avx2") {
103
+ return;
104
+ }
105
+ for dim in [2, 6, 14, 16, 18, 32, 64, 128, 256] {
106
+ for delta in [0, -1, -152, 16777216] {
107
+ let n = 65536usize.div_ceil(dim) * dim;
108
+ // Production rejects nonfinite input before invoking this helper.
109
+ let mut actual: Vec<u16> = (0..n)
110
+ .map(|i| {
111
+ let word = i as u16;
112
+ if decode_bf16(word).is_finite() {
113
+ word
114
+ } else {
115
+ 0
116
+ }
117
+ })
118
+ .collect();
119
+ let mut expected = actual.clone();
120
+ let coefficients: Vec<_> = (0..dim / 2)
121
+ .map(|i| {
122
+ let angle = delta as f32 * 1e6f32.powf((2 * i) as f32 / dim as f32).recip();
123
+ let (s, c) = angle.sin_cos();
124
+ (c, s)
125
+ })
126
+ .collect();
127
+ scalar(&mut expected, dim, &coefficients);
128
+ unsafe { rotate(&mut actual, dim, &coefficients) };
129
+ for (i, (a, b)) in actual.iter().zip(&expected).enumerate() {
130
+ // Overflow is rejected atomically by the caller; NaN payload selection
131
+ // for arithmetic is not portable between scalar and SIMD instructions.
132
+ if decode_bf16(*b).is_nan() {
133
+ assert!(
134
+ decode_bf16(*a).is_nan(),
135
+ "index={i} dim={dim} delta={delta}"
136
+ );
137
+ } else {
138
+ assert_eq!(a, b, "index={i} dim={dim} delta={delta}");
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ #[test]
145
+ fn vector_rounding_matches_scalar_ties_and_nan_payloads() {
146
+ if !is_x86_feature_detected!("avx2") {
147
+ return;
148
+ }
149
+ for suffix in [0, 1, 0x7fff, 0x8000, 0x8001, 0xffff] {
150
+ for high in (0..65536u32).step_by(8) {
151
+ let values: [f32; 8] =
152
+ std::array::from_fn(|i| f32::from_bits(((high + i as u32) << 16) | suffix));
153
+ let mut actual = [0f32; 8];
154
+ unsafe {
155
+ _mm256_storeu_ps(
156
+ actual.as_mut_ptr(),
157
+ rounded(_mm256_loadu_ps(values.as_ptr())),
158
+ )
159
+ };
160
+ for i in 0..8 {
161
+ assert_eq!(actual[i].to_bits(), u32::from(round_bf16(values[i])) << 16);
162
+ }
163
+ }
164
+ }
165
+ }
166
+ #[test]
167
+ #[ignore = "fixed paired rotation timing on a quiet CPU; not full ASR"]
168
+ fn encoder_shape_rotation_pairs() {
169
+ use std::{hint::black_box, time::Instant};
170
+ assert!(is_x86_feature_detected!("avx2"));
171
+ let dim = 64;
172
+ let input: Vec<u16> = (0..749 * 32 * dim)
173
+ .map(|i| round_bf16(((i * 37 % 65521) as f32 - 32760.) / 8192.))
174
+ .collect();
175
+ let coefficients: Vec<_> = (0..dim / 2)
176
+ .map(|i| {
177
+ let angle = -152f32 * 1e6f32.powf((2 * i) as f32 / dim as f32).recip();
178
+ let (s, c) = angle.sin_cos();
179
+ (c, s)
180
+ })
181
+ .collect();
182
+ let mut eviction = vec![0u8; 64 * 1024 * 1024];
183
+ for displaced in [false, true] {
184
+ let mut times: [Vec<f64>; 2] = std::array::from_fn(|_| Vec::new());
185
+ for round in 0..13 {
186
+ let mut outputs = Vec::new();
187
+ for mode in if round % 2 == 0 { [0, 1] } else { [1, 0] } {
188
+ let mut data = input.clone();
189
+ if displaced {
190
+ let mut sum = 0u64;
191
+ for b in eviction.iter_mut().step_by(64) {
192
+ *b = b.wrapping_add(1);
193
+ sum += u64::from(*b);
194
+ }
195
+ black_box(sum);
196
+ }
197
+ let clock = Instant::now();
198
+ if mode == 0 {
199
+ scalar(black_box(&mut data), dim, &coefficients)
200
+ } else {
201
+ unsafe { rotate(black_box(&mut data), dim, &coefficients) }
202
+ }
203
+ let elapsed = clock.elapsed().as_secs_f64();
204
+ black_box(&data);
205
+ if round >= 2 {
206
+ times[mode].push(elapsed);
207
+ }
208
+ outputs.push(data);
209
+ }
210
+ assert!(outputs[0] == outputs[1]);
211
+ }
212
+ let mut ratios: Vec<_> = times[0].iter().zip(&times[1]).map(|(a, b)| a / b).collect();
213
+ ratios.sort_by(f64::total_cmp);
214
+ println!("{{\"kind\":\"bf16_rebase_rotation_pair\",\"history\":749,\"heads\":32,\"dim\":64,\"delta\":-152,\"displaced_64mib\":{displaced},\"reference_seconds\":{:?},\"candidate_seconds\":{:?},\"paired_median_speedup\":{},\"pairs\":11,\"output_bits_exact\":true,\"full_cache_operation\":false}}",times[0],times[1],ratios[5]);
215
+ }
216
+ }
217
+ }
native/src/kv_storage.rs CHANGED
@@ -5,6 +5,10 @@ use crate::{err, Result};
5
  use std::borrow::Cow;
6
  use std::ops::Range;
7
 
 
 
 
 
8
  #[derive(Clone, Copy)]
9
  pub(crate) enum KvReadView<'a> {
10
  F32 { keys: &'a [f32], values: &'a [f32] },
@@ -168,17 +172,29 @@ impl KvStorage {
168
  return Err(err("nonfinite rolling BF16 cache"));
169
  }
170
  let mut rotated = keys[tail..].to_vec();
171
- for head in rotated.chunks_exact_mut(head_dim) {
172
- for (i, &(cos, sin)) in coefficients.iter().enumerate() {
173
- // PyTorch casts cos/sin first and rounds BOTH products
174
- // before the final rounded sum. A single final cast is wrong.
175
- let cos = decode_bf16(round_bf16(cos));
176
- let sin = decode_bf16(round_bf16(sin));
177
- let left = decode_bf16(head[i]);
178
- let right = decode_bf16(head[i + half]);
179
- let product = |a, b| decode_bf16(round_bf16(a * b));
180
- head[i] = round_bf16(product(left, cos) + product(-right, sin));
181
- head[i + half] = round_bf16(product(right, cos) + product(left, sin));
 
 
 
 
 
 
 
 
 
 
 
 
182
  }
183
  }
184
  if rotated.iter().any(|v| v & 0x7f80 == 0x7f80) {
@@ -385,12 +401,16 @@ mod tests {
385
  (48 - 12) * 2 * if bf16 { 2 } else { 4 }
386
  );
387
  // Finite values whose rotated sum overflows also fail atomically.
388
- let mut overflow = KvStorage::new(4, bf16);
389
- let big = if bf16 { decode_bf16(0x7f7f) } else { f32::MAX };
390
- overflow.append(&[big, big], &[0.0, 0.0]).unwrap();
391
- let original = overflow.clone();
392
- assert!(overflow.trim_and_rebase(0, 0, 2, -1, 1e6).is_err());
393
- assert_eq!(overflow, original);
 
 
 
 
394
  }
395
  }
396
 
 
5
  use std::borrow::Cow;
6
  use std::ops::Range;
7
 
8
+ #[cfg(target_arch = "x86_64")]
9
+ #[path = "kv_rebase_x86.rs"]
10
+ mod rebase_x86;
11
+
12
  #[derive(Clone, Copy)]
13
  pub(crate) enum KvReadView<'a> {
14
  F32 { keys: &'a [f32], values: &'a [f32] },
 
172
  return Err(err("nonfinite rolling BF16 cache"));
173
  }
174
  let mut rotated = keys[tail..].to_vec();
175
+ #[cfg(target_arch = "x86_64")]
176
+ let optimized = if is_x86_feature_detected!("avx2") {
177
+ // SAFETY: AVX2 detected; helper validates spans before loads.
178
+ unsafe { rebase_x86::rotate(&mut rotated, head_dim, &coefficients) };
179
+ true
180
+ } else {
181
+ false
182
+ };
183
+ #[cfg(not(target_arch = "x86_64"))]
184
+ let optimized = false;
185
+ if !optimized {
186
+ for head in rotated.chunks_exact_mut(head_dim) {
187
+ for (i, &(cos, sin)) in coefficients.iter().enumerate() {
188
+ // PyTorch casts cos/sin first and rounds BOTH products
189
+ // before the final rounded sum. A single final cast is wrong.
190
+ let cos = decode_bf16(round_bf16(cos));
191
+ let sin = decode_bf16(round_bf16(sin));
192
+ let left = decode_bf16(head[i]);
193
+ let right = decode_bf16(head[i + half]);
194
+ let product = |a, b| decode_bf16(round_bf16(a * b));
195
+ head[i] = round_bf16(product(left, cos) + product(-right, sin));
196
+ head[i + half] = round_bf16(product(right, cos) + product(left, sin));
197
+ }
198
  }
199
  }
200
  if rotated.iter().any(|v| v & 0x7f80 == 0x7f80) {
 
401
  (48 - 12) * 2 * if bf16 { 2 } else { 4 }
402
  );
403
  // Finite values whose rotated sum overflows also fail atomically.
404
+ for dim in [2, 16, 64] {
405
+ let mut overflow = KvStorage::new(dim * 2, bf16);
406
+ let big = if bf16 { decode_bf16(0x7f7f) } else { f32::MAX };
407
+ overflow.append(&vec![big; dim], &vec![0.0; dim]).unwrap();
408
+ let original = overflow.clone();
409
+ let allocated = overflow.allocated_bytes();
410
+ assert!(overflow.trim_and_rebase(0, 0, dim, -1, 1e6).is_err());
411
+ assert_eq!(overflow, original);
412
+ assert_eq!(overflow.allocated_bytes(), allocated);
413
+ }
414
  }
415
  }
416
 
provenance/native-build.json CHANGED
@@ -2,12 +2,12 @@
2
  "schema": "audio8.native_caption_build.v2",
3
  "status": "complete",
4
  "no_model_inference": true,
5
- "source_manifest": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-v2/manifest.json",
6
- "source_manifest_sha256": "e52a0d57d942261cb9cc22cbaf8280dbf46dd888aedae2d3a6ccb9abda0cdb4e",
7
- "source_archive": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-v2/sources.tar.gz",
8
- "source_archive_sha256": "147842b7d73e9fa9dbb001fa68f9b8791bd15a619d68d62326f78bc6d023833f",
9
- "source_files": 113,
10
- "build_script_sha256": "9f45c4386e29eda42731bc406cdeb7eff850ea0e86bdf0b07bc76db3b4632eaf",
11
  "features": [
12
  "parallel",
13
  "x86-vnni",
@@ -33,9 +33,9 @@
33
  ],
34
  "nice": 15,
35
  "cargo_jobs": 1,
36
- "container": "3cae807f51d08919f18392e320f2df99e4b3a0209b46187c27dd0c6b4e61a1b5",
37
  "image": "sha256:fcb5e809113d755189f71dba0dd88f23118552d18e1c75c15435591d3057885a",
38
- "container_metadata_sha256": "146bf6e6c2550be447a2855ec62b2c8eddd108a93e86e10e28387e9dacde0be7",
39
  "package_inventory_sha256": "43f77f244d7cb2958350a86bbf7229f0718b90f3be43029aeca367591c779972",
40
  "toolchain_manifest_sha256": "7a397e14edaf0b8ea711614c5806c8b70f1ec8e7beb2ab6a18249d6a134313fa",
41
  "registry_manifest_sha256": "81fd065f90d0feb72e6b89c34ff1c5fe40facdb182e24b13c99304283eeda7f2",
@@ -54,7 +54,7 @@
54
  "CARGO_ENCODED_RUSTFLAGS": "",
55
  "PATH": "/toolchain/bin:/usr/local/bin:/usr/bin:/bin"
56
  },
57
- "started_unix": 1790306923.0501943,
58
  "commands": [
59
  {
60
  "argv": [
@@ -74,9 +74,9 @@
74
  "warnings"
75
  ],
76
  "returncode": 0,
77
- "elapsed_seconds": 45.20056080818176,
78
- "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-v2/reports/strict-clippy.txt",
79
- "sha256": "e2bd6617e20a8727ac5d4d9e9d5776dbd707d4f98953d6c03f0a7605cb573608"
80
  },
81
  {
82
  "argv": [
@@ -93,9 +93,9 @@
93
  "--test-threads=1"
94
  ],
95
  "returncode": 0,
96
- "elapsed_seconds": 226.05003023147583,
97
- "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-v2/reports/caption-tests.txt",
98
- "sha256": "db75419cdb179e37b2df726b56d7451eae4d5d78e52e96716814f6bdbee662aa"
99
  },
100
  {
101
  "argv": [
@@ -112,9 +112,9 @@
112
  "--test-threads=1"
113
  ],
114
  "returncode": 0,
115
- "elapsed_seconds": 5.025572776794434,
116
- "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-v2/reports/gated-tests.txt",
117
- "sha256": "6a2780f99b1bf3a4559c6bd67a8cf28cc5cafbea8218e96e28131df289085208"
118
  },
119
  {
120
  "argv": [
@@ -131,9 +131,9 @@
131
  "--test-threads=1"
132
  ],
133
  "returncode": 0,
134
- "elapsed_seconds": 115.50631785392761,
135
- "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-v2/reports/cli-tests.txt",
136
- "sha256": "d098af01742485b5106ab048e9f1454257ed954a30488ac68da4448041797f1d"
137
  },
138
  {
139
  "argv": [
@@ -150,9 +150,9 @@
150
  "--test-threads=1"
151
  ],
152
  "returncode": 0,
153
- "elapsed_seconds": 155.7238483428955,
154
- "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-v2/reports/bf16-mode-tests.txt",
155
- "sha256": "37593327136064d17fe68b21da7f2488ad6c96732b8116c1018c6f527031c9c6"
156
  },
157
  {
158
  "argv": [
@@ -167,9 +167,9 @@
167
  "audio8-stream"
168
  ],
169
  "returncode": 0,
170
- "elapsed_seconds": 5.014032602310181,
171
- "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-v2/reports/binary-build.txt",
172
- "sha256": "9576f1f7e73fc2bb1ec2336aae60cb485c591eadc60a1b998573411c34057e08"
173
  },
174
  {
175
  "argv": [
@@ -184,19 +184,19 @@
184
  "/task/backend_probe"
185
  ],
186
  "returncode": 0,
187
- "elapsed_seconds": 5.0255045890808105,
188
- "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-v2/reports/backend-probe-build.txt",
189
  "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
190
  }
191
  ],
192
  "generic_linux_binary_claim": false,
193
  "quality_acceptance": false,
194
- "binary": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-v2/bin/audio8-stream",
195
- "sha256": "30486025c4ba0cb6d8f4d094b556fb22dbe7ecd2018caaeda740ed235ff51626",
196
- "bytes": 28397232,
197
  "elf-versions_sha256": "212616211c6eeeeef1dcf64f9010e9ca3019737cfb9736a88796385d3c42e757",
198
- "elf-headers_sha256": "be4158eee8feffdb04876c9a35cb7bd451f97f4a5b9ec3fd21a5fd8be41b198c",
199
- "elf-dynamic_sha256": "6534786ab0d09d3834e7e349c1e379c7da7f476644595a0f647c02953cbf1e72",
200
  "strong_glibc_versions": [
201
  "GLIBC_2.14",
202
  "GLIBC_2.15",
@@ -218,11 +218,11 @@
218
  "GLIBC_2.9"
219
  ],
220
  "weak_glibc_versions": [],
221
- "finished_unix": 1790307481.1342428,
222
  "bf16_backend": "avx512_bf16_q4",
223
  "int8_backend": "avx512_vnni",
224
  "backend_probe_source_sha256": "713aff8aad3a58c58a929ffb2027b7b9566e258a1ad6d97153e6184c16aee448",
225
- "backend_probe_binary_sha256": "19e3d1868a131745c8b5d40d616191e770665c3f3c170bad04894dc8c543a599",
226
  "supported_activation_modes": [
227
  "fp32",
228
  "a8",
 
2
  "schema": "audio8.native_caption_build.v2",
3
  "status": "complete",
4
  "no_model_inference": true,
5
+ "source_manifest": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/manifest.json",
6
+ "source_manifest_sha256": "70f257fac9ab0a96e116684623e893dad875acefff947adb04b694c9283dc0b8",
7
+ "source_archive": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/sources.tar.gz",
8
+ "source_archive_sha256": "fd68ec98f70ea455621adb1318b467cec36221dd9b66212f3e81cf5d92c48692",
9
+ "source_files": 115,
10
+ "build_script_sha256": "531ee576d944de4c3814ef48a1747bc5b0ac127e51faf4445cb160fed1bbbc71",
11
  "features": [
12
  "parallel",
13
  "x86-vnni",
 
33
  ],
34
  "nice": 15,
35
  "cargo_jobs": 1,
36
+ "container": "b32a6b1bdd58418ee694c0f5e228c2f069d2e72233fc970e182299616f44f53b",
37
  "image": "sha256:fcb5e809113d755189f71dba0dd88f23118552d18e1c75c15435591d3057885a",
38
+ "container_metadata_sha256": "ecf17c119cfa07ada449f8bedadf36ad82de3469603f3d778163885fc2703e5f",
39
  "package_inventory_sha256": "43f77f244d7cb2958350a86bbf7229f0718b90f3be43029aeca367591c779972",
40
  "toolchain_manifest_sha256": "7a397e14edaf0b8ea711614c5806c8b70f1ec8e7beb2ab6a18249d6a134313fa",
41
  "registry_manifest_sha256": "81fd065f90d0feb72e6b89c34ff1c5fe40facdb182e24b13c99304283eeda7f2",
 
54
  "CARGO_ENCODED_RUSTFLAGS": "",
55
  "PATH": "/toolchain/bin:/usr/local/bin:/usr/bin:/bin"
56
  },
57
+ "started_unix": 1790314523.5237415,
58
  "commands": [
59
  {
60
  "argv": [
 
74
  "warnings"
75
  ],
76
  "returncode": 0,
77
+ "elapsed_seconds": 45.21966028213501,
78
+ "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/reports/strict-clippy.txt",
79
+ "sha256": "4da8a1e45eae7dac48438c1b6e4e027c25ebe6e0485de1539ba9a75897b70048"
80
  },
81
  {
82
  "argv": [
 
93
  "--test-threads=1"
94
  ],
95
  "returncode": 0,
96
+ "elapsed_seconds": 226.03099751472473,
97
+ "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/reports/caption-tests.txt",
98
+ "sha256": "5876b6f46d9f226943ac5cac42eb97cdf219349da758ae797ecf04ea1520be6a"
99
  },
100
  {
101
  "argv": [
 
112
  "--test-threads=1"
113
  ],
114
  "returncode": 0,
115
+ "elapsed_seconds": 5.026270627975464,
116
+ "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/reports/gated-tests.txt",
117
+ "sha256": "9afc850347331f9235cad5c68c7a6b39f756aef8a624e4600af240d44d964cd9"
118
  },
119
  {
120
  "argv": [
 
131
  "--test-threads=1"
132
  ],
133
  "returncode": 0,
134
+ "elapsed_seconds": 110.49916505813599,
135
+ "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/reports/cli-tests.txt",
136
+ "sha256": "35ce9172616e428662890a9220544193ba0efb9f1260dae0330280ad5c487de8"
137
  },
138
  {
139
  "argv": [
 
150
  "--test-threads=1"
151
  ],
152
  "returncode": 0,
153
+ "elapsed_seconds": 160.7479910850525,
154
+ "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/reports/bf16-mode-tests.txt",
155
+ "sha256": "c2488b51c0b4e9bb845813fee71df7b96721c068f0521a41d9dd70ab881cc4ff"
156
  },
157
  {
158
  "argv": [
 
167
  "audio8-stream"
168
  ],
169
  "returncode": 0,
170
+ "elapsed_seconds": 5.005878448486328,
171
+ "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/reports/binary-build.txt",
172
+ "sha256": "90c8a1a69c0155761cff4bfe0e61bbee007961d2b96729d2127c2e0c291489dd"
173
  },
174
  {
175
  "argv": [
 
184
  "/task/backend_probe"
185
  ],
186
  "returncode": 0,
187
+ "elapsed_seconds": 5.020895719528198,
188
+ "log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/reports/backend-probe-build.txt",
189
  "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
190
  }
191
  ],
192
  "generic_linux_binary_claim": false,
193
  "quality_acceptance": false,
194
+ "binary": "/home/rezo/audio8-q4-recovery-20260924/native-caption-prefix-ubuntu2204-v1/bin/audio8-stream",
195
+ "sha256": "f10ccbdc33ed5bc73d96516403634cd5551c81a05be823af91060a178a92d2d3",
196
+ "bytes": 28410544,
197
  "elf-versions_sha256": "212616211c6eeeeef1dcf64f9010e9ca3019737cfb9736a88796385d3c42e757",
198
+ "elf-headers_sha256": "d1dc3fa7c3127fa5305db108c6122737a4855e9ba01f8f0acbc9e8b325a36cf2",
199
+ "elf-dynamic_sha256": "9fb4e6b0e03e4430555bac86853e065f71a4ca8addf0000bf4e47c99ee7c7357",
200
  "strong_glibc_versions": [
201
  "GLIBC_2.14",
202
  "GLIBC_2.15",
 
218
  "GLIBC_2.9"
219
  ],
220
  "weak_glibc_versions": [],
221
+ "finished_unix": 1790315081.6269038,
222
  "bf16_backend": "avx512_bf16_q4",
223
  "int8_backend": "avx512_vnni",
224
  "backend_probe_source_sha256": "713aff8aad3a58c58a929ffb2027b7b9566e258a1ad6d97153e6184c16aee448",
225
+ "backend_probe_binary_sha256": "5363e46dae7475530fbad525a282cb8fd308e959bc7076108a7509c6b1116f74",
226
  "supported_activation_modes": [
227
  "fp32",
228
  "a8",
provenance/native-source-manifest.json CHANGED
@@ -1,573 +1,592 @@
1
  {
2
- "change": "Two test-only Clippy range-expression fixes; no runtime arithmetic changes.",
 
3
  "files": [
4
  {
5
- "bytes": 31781,
6
  "path": "native/Cargo.lock",
 
7
  "sha256": "4abcfff3e11e077bfea35a5a3f603c9bd84cc0c434127be4158d1b00874091f5"
8
  },
9
  {
10
- "bytes": 1320,
11
  "path": "native/Cargo.toml",
 
12
  "sha256": "5feba8ba3cb2cb71724a8291d053cdf2f3fdbc00a658fbfe9283dcbcdee10bd6"
13
  },
14
  {
15
- "bytes": 29103,
16
  "path": "native/README.md",
 
17
  "sha256": "f9186db9d68755144fce60df1bb6a5a073ae57dab464cfda36668b0d50b28da0"
18
  },
19
  {
20
- "bytes": 2531,
21
  "path": "native/build.rs",
 
22
  "sha256": "c2154356fa2d554ed01dbb17ee234a71c1db29e1ccaca8ee92d63eb5a12eb0cc"
23
  },
24
  {
25
- "bytes": 2205,
26
  "path": "native/examples/bench_conv.rs",
 
27
  "sha256": "13749a0b7a66c20c9ea034602e0130fe7cfed381e82a16fa08704903d79902f7"
28
  },
29
  {
30
- "bytes": 3464,
31
  "path": "native/examples/bench_encoder_attention.rs",
 
32
  "sha256": "b7b872524f957a23909a246211a5f0b6656ddfd561c89e2244d638c99aa8a7b9"
33
  },
34
  {
35
- "bytes": 4347,
36
  "path": "native/examples/bench_pool_policy.rs",
 
37
  "sha256": "0d6a97bac74d463fecf9e39fc6f1f0cec85c022dbef65b07ad81848281cbb3d0"
38
  },
39
  {
40
- "bytes": 5037,
41
  "path": "native/examples/bench_portable_conv.rs",
 
42
  "sha256": "1b7c5c2c09f93342e5e6ce4f62ea25028ce6047a539cfc358f39954f2d765691"
43
  },
44
  {
45
- "bytes": 4531,
46
  "path": "native/examples/bench_uniform_bitplanes.rs",
 
47
  "sha256": "790da0a9498184856bae1f2debc154e6b51601945c7770befb874ea002e50cf3"
48
  },
49
  {
50
- "bytes": 4611,
51
  "path": "native/examples/bench_uniform_blocked.rs",
 
52
  "sha256": "a8bd32aeddb44ebc94b7cb0d14f395cfc4170c51f2e8305f9948b6f0a14fc8dd"
53
  },
54
  {
55
- "bytes": 4411,
56
  "path": "native/examples/bench_uniform_int8.rs",
 
57
  "sha256": "17b57afa94a4da9509cbd04027e96d50fbf6e0d01ca5b67d2426d2c8f554564a"
58
  },
59
  {
60
- "bytes": 3960,
61
  "path": "native/examples/bench_uniform_parallel.rs",
 
62
  "sha256": "1a4948d1ca678cc704301efa6111dee1647285d8be8df10e9549052845d425e9"
63
  },
64
  {
65
- "bytes": 4952,
66
  "path": "native/examples/bench_uniform_rows4.rs",
 
67
  "sha256": "654e53c42603d38a335489c28b6eac7e5d5d5a2bfd64e692eeb60329cd483e99"
68
  },
69
  {
70
- "bytes": 4688,
71
  "path": "native/examples/bench_uniform_simd.rs",
 
72
  "sha256": "0d40a3e28bdc478b23664b4bdfb7256e44281566e325c2b107fb5a1a08dec1aa"
73
  },
74
  {
75
- "bytes": 3581,
76
  "path": "native/examples/check_cache_storage.rs",
 
77
  "sha256": "0e5ad6bc5e1450d36d04e5f104c1bb3ea7a395c296aa215bc268b3978f7ef10b"
78
  },
79
  {
80
- "bytes": 2951,
81
  "path": "native/examples/check_decoder_chunk.rs",
 
82
  "sha256": "a972dea793e96797c6e3e9388735e349f9fe624d023b7e2fb818905840640fc8"
83
  },
84
  {
85
- "bytes": 4458,
86
  "path": "native/examples/check_encoder_chunk.rs",
 
87
  "sha256": "4141c152274751ade976ea566274622add3fa312505df1a0a5ae67367ae747bb"
88
  },
89
  {
90
- "bytes": 1008,
91
  "path": "native/examples/check_model.rs",
 
92
  "sha256": "424fd41003ae137836593b7d7182404bac1ce9b26b3709107ad3030083ada410"
93
  },
94
  {
95
- "bytes": 2556,
96
  "path": "native/examples/gated_audio_oracle.rs",
 
97
  "sha256": "97c0b33b8cc8b6d6fdd870e4d4e767ffbc7844a37ca7585339d127e96efd035d"
98
  },
99
  {
100
- "bytes": 3687,
101
  "path": "native/examples/nonlinear-bench.c",
 
102
  "sha256": "f21587f4306cfd868525ade53182c5aa4369fc42e6dc7b8f54e09f39795e8601"
103
  },
104
  {
105
- "bytes": 15246,
106
  "path": "native/examples/nonrolling_stream_probe.rs",
 
107
  "sha256": "86a9236dfbac4d10572d75b41aa076cdc6147573913242e94110233c744c583f"
108
  },
109
  {
110
- "bytes": 968,
111
  "path": "native/examples/qos-probe.c",
 
112
  "sha256": "d3a573bc80d5ae32facea4fe25213a18b1ad81a38390cfe619a58b199681b6f7"
113
  },
114
  {
115
- "bytes": 2049,
116
  "path": "native/examples/sha256_stream.rs",
 
117
  "sha256": "8f7c8ca375233b59a5e12170317420ffd1e56aaeafb2a5e42d47da4439d9b022"
118
  },
119
  {
120
- "bytes": 5771,
121
  "path": "native/src/attention_head_local_tests.rs",
 
122
  "sha256": "6c15116ddcfa399c0d87093918f3e618ddace332ae467e2e0ae71f8d438c5c16"
123
  },
124
  {
125
- "bytes": 32948,
126
  "path": "native/src/attention_math.rs",
 
127
  "sha256": "243483eb07feb34f07cb7be1f90b7c68098875111214bc8269fa2399fec46b22"
128
  },
129
  {
130
- "bytes": 6823,
131
  "path": "native/src/attention_x86.rs",
 
132
  "sha256": "20ee26d166b64e6574e07650c37a6b016b9fd02b76801778a93e522ad6cc2585"
133
  },
134
  {
135
- "bytes": 28320,
136
  "path": "native/src/audio_path.rs",
 
137
  "sha256": "6f9a839012e518cd3f37f6e8464a254af2b2c3325dafdb01f6fa5447f4960c9b"
138
  },
139
  {
140
- "bytes": 27075,
141
  "path": "native/src/bin/audio8-asr.rs",
 
142
  "sha256": "796870256040be1ecc9851ce9e72bc9522776e82327f9610a6b527b0edc8d1b8"
143
  },
144
  {
145
- "bytes": 35470,
146
  "path": "native/src/bin/audio8-stream.rs",
147
- "sha256": "5fbe1ca1c377d1855539c1245270ecddb2dd0f830521519e43e71585aa4d8d54"
 
148
  },
149
  {
150
- "bytes": 4886,
151
  "path": "native/src/bin/kleidi-bench.rs",
 
152
  "sha256": "b78b7f0831c6b7b61c5352001c8d2900686a44a00c181d61dbb3ebf8b9f06175"
153
  },
154
  {
155
- "bytes": 2415,
156
  "path": "native/src/bin/support/runtime_platform.rs",
 
157
  "sha256": "0ab0e8cf673b3a41e207c37e82a0b41e7e93657a0f807308311b9c0fd527e906"
158
  },
159
  {
160
- "bytes": 3966,
161
  "path": "native/src/bin/support/silero_stream.rs",
162
- "sha256": "6e78be61fc887c530e6bb008b9f310191023cb8a7700e299fd7c98e1f53aa320"
 
163
  },
164
  {
165
- "bytes": 3634,
166
  "path": "native/src/bin/support/stream_common.rs",
 
167
  "sha256": "0f1972219a26bd6871f2f18cd0cf1279dd576638ae1782136c4792df818a10c1"
168
  },
169
  {
170
- "bytes": 22803,
171
  "path": "native/src/caption_stream.rs",
172
- "sha256": "1b7c1231aa128d9d758352bc8926bda352b2a8f65d0294892ff8b82f4543f476"
 
173
  },
174
  {
175
- "bytes": 7145,
176
  "path": "native/src/conditioning.rs",
 
177
  "sha256": "b99699ca70373281f9ec94d3f84484536a8eb9a85d1abd0350d3099105f327c2"
178
  },
179
  {
180
- "bytes": 8058,
181
  "path": "native/src/conv_math.rs",
 
182
  "sha256": "0faa455bde072cedecd336548f17b4bfd54dca6addae0e899fd755dad19870c7"
183
  },
184
  {
185
- "bytes": 42388,
186
  "path": "native/src/decoder.rs",
 
187
  "sha256": "6681de746aed594960824b8d1d34b8bfb13d0d8544218b6cf4747b09133e4f71"
188
  },
189
  {
190
- "bytes": 60417,
191
  "path": "native/src/encoder.rs",
 
192
  "sha256": "89b7515ee98fff1d7c4fc51119bb028c5904c7b7882732294eae92804bd0f442"
193
  },
194
  {
195
- "bytes": 9655,
196
  "path": "native/src/encoder_float_tests.rs",
 
197
  "sha256": "7f0d7a68227c4c3e0f6343bacb06cf770eb623c8f83f4010004f3cfcd1dac3ba"
198
  },
199
  {
200
- "bytes": 7659,
201
  "path": "native/src/encoder_head_local_tests.rs",
 
202
  "sha256": "7fd1b32f3472a2823219fa0ced7d20dfa735932f334cebe460dd06b979170567"
203
  },
204
  {
205
- "bytes": 7293,
206
  "path": "native/src/encoder_i8mm_tests.rs",
 
207
  "sha256": "8786f9fb09852232daa533f791f22c69bd02ad135016a2b136739597467269c0"
208
  },
209
  {
210
- "bytes": 16898,
211
  "path": "native/src/encoder_phase_tests.rs",
 
212
  "sha256": "51160570e37fd8f776cc46d9909b1410983307a423db6e39b3467fd52b2c7cd8"
213
  },
214
  {
215
- "bytes": 11957,
216
  "path": "native/src/encoder_tiled_attention.rs",
217
- "sha256": "fd3203940bc11da712db02bd98d957def495d59d5804d87c67ce461f7c3de391"
 
218
  },
219
  {
220
- "bytes": 19056,
221
  "path": "native/src/encoder_tiled_attention_tests.rs",
222
- "sha256": "5b046f439afa58815893037ab6700cf7470d816a4fcff1f87446225a36dbea30"
 
223
  },
224
  {
225
- "bytes": 6157,
226
  "path": "native/src/encoder_x86_attention_tests.rs",
 
227
  "sha256": "f1725764917be7a7c6a31056b9b70d7dcebe0fb3f1dde29de552c9be749560ca"
228
  },
229
  {
230
- "bytes": 60759,
231
  "path": "native/src/engine.rs",
 
232
  "sha256": "9845f0e771241b67e3640add3401b6a9cdf24af2b826dcb9960b1937a3b45a0e"
233
  },
234
  {
235
- "bytes": 4979,
236
  "path": "native/src/fast_sha256.rs",
 
237
  "sha256": "34e14383a5d82db0396cb55571d750c8d0bb02c0680415243114b8204c111fe6"
238
  },
239
  {
240
- "bytes": 8884,
241
  "path": "native/src/frontend.rs",
 
242
  "sha256": "1dd5c23afa9af4a294f7efdf942e6b6a2b6c3abddaa44839c57f92b8b093b519"
243
  },
244
  {
245
- "bytes": 13860,
246
  "path": "native/src/gated_audio.rs",
 
247
  "sha256": "4207564489bb02e305cc04e03cb99759dbd1ec8a711c07aab010cc99f740376f"
248
  },
249
  {
250
- "bytes": 23517,
251
  "path": "native/src/kv_storage.rs",
252
- "sha256": "2ae02b5812d672303e1cbab426d1d368c75fe02207149ec1b0e9bb7296de90c7"
 
253
  },
254
  {
255
- "bytes": 28763,
256
  "path": "native/src/lib.rs",
 
257
  "sha256": "ebed9b2b955c3f442c986bdfcdb08256d1f42043af9c827ee924b7f2ef102726"
258
  },
259
  {
260
- "bytes": 18738,
261
  "path": "native/src/live_audio.rs",
 
262
  "sha256": "aecfefe0c0a082a1f4c081a431f52c45a04e5dc15c83331f9e0d8e610eec17ee"
263
  },
264
  {
265
- "bytes": 22330,
266
  "path": "native/src/main.rs",
 
267
  "sha256": "bf0c6940b2bbf6fff892a1e75bcb17ae2fa45a7c7b3b062caa3c34647f0c93dd"
268
  },
269
  {
270
- "bytes": 29791,
271
  "path": "native/src/model_loader.rs",
 
272
  "sha256": "5672b0fbfc97be698b4187d8860bd327ecc14b4ae921058c99ef576ad5c97233"
273
  },
274
  {
275
- "bytes": 5159,
276
  "path": "native/src/nonlinear.rs",
 
277
  "sha256": "444c3eb7020e907841516302a714f0acfd09f0a2820231769fe6d6762f3e26b7"
278
  },
279
  {
280
- "bytes": 22884,
281
  "path": "native/src/prefix_cache.rs",
 
282
  "sha256": "41b8a5eca00a9c817e920837fda1adce7ee50c7e17bef6dcd6a777f41e120c7f"
283
  },
284
  {
285
- "bytes": 6993,
286
  "path": "native/src/rotary.rs",
 
287
  "sha256": "1dd58564040c0a5853248aaa92304e0dbb543fa3a5950ff0c4159043502afe79"
288
  },
289
  {
290
- "bytes": 18993,
291
  "path": "native/src/row_pool.rs",
 
292
  "sha256": "689e56cdb9fced428cb21b9af5df8ac737ca14a17a52a70fc1777f992bd5a20b"
293
  },
294
  {
295
- "bytes": 20708,
296
  "path": "native/src/streaming_plan.rs",
 
297
  "sha256": "e5abad8865d041ae027006b3035f685b78da3ea42c82f893a1788077419ce8b2"
298
  },
299
  {
300
- "bytes": 27506,
301
  "path": "native/src/tokenizer.rs",
 
302
  "sha256": "c391a00a85f67cb4b22bd99bb299054da4ec41a617febd10eaa0875b08932b7e"
303
  },
304
  {
305
- "bytes": 58734,
306
  "path": "native/src/uniform.rs",
 
307
  "sha256": "90f58bfd8745c9a7a4d57132a9594d3c1a0962bba819f781880754a267156c48"
308
  },
309
  {
310
- "bytes": 14263,
311
  "path": "native/src/uniform_avx2.rs",
 
312
  "sha256": "775e85ba2cf49394a8c0616f7310fad352bd366089ee539e8bd30c5ab577c16e"
313
  },
314
  {
315
- "bytes": 4958,
316
  "path": "native/src/uniform_bf16.rs",
 
317
  "sha256": "e72c089c5f29524d086aaff69f40484b247f73aa103271047341d4801a3b8d56"
318
  },
319
  {
320
- "bytes": 11776,
321
  "path": "native/src/uniform_float.rs",
 
322
  "sha256": "7eec50e160676833a892d90b6db3fd051fd6bb39ac268671e4a56f5049b019f2"
323
  },
324
  {
325
- "bytes": 11688,
326
  "path": "native/src/uniform_float_tests.rs",
 
327
  "sha256": "0bf94500fee3fedcdfb69eff0e127b98f3fd4d78aac4c717a627648d3a9e5056"
328
  },
329
  {
330
- "bytes": 7870,
331
  "path": "native/src/uniform_i8mm_tests.rs",
 
332
  "sha256": "72b0ede31c3938a3b99dbe8724268bfd686cd8a44a81c4c92e63281cdeb4552c"
333
  },
334
  {
335
- "bytes": 18393,
336
  "path": "native/src/uniform_int16.rs",
 
337
  "sha256": "0543b2e4db1614450cf285f49bdf4cd1f9b23b8e6657800e394422fa531f9efd"
338
  },
339
  {
340
- "bytes": 8030,
341
  "path": "native/src/uniform_int16_vnni.rs",
 
342
  "sha256": "04854b6adf2f96315080644c2f824c5f106d25ef27c22d6295d6b1d1e388ee21"
343
  },
344
  {
345
- "bytes": 9755,
346
  "path": "native/src/uniform_int16_vnni_tests.rs",
 
347
  "sha256": "7a883c4c54ac8fecbaa9bc8448887f8f9fa91ad5fed9627717a6d3e32adee47a"
348
  },
349
  {
350
- "bytes": 70708,
351
  "path": "native/src/uniform_int8.rs",
 
352
  "sha256": "f5c0fb55b3f35b6c88e1ff2b4a70088b18eefaf091e5fcef6666991265f16ac8"
353
  },
354
  {
355
- "bytes": 32842,
356
  "path": "native/src/uniform_kleidi.rs",
 
357
  "sha256": "5c8921b221bdf4c0f3ec78216fb64825e873f429bde1abf726c4527c58a7aaf6"
358
  },
359
  {
360
- "bytes": 5536,
361
  "path": "native/src/uniform_pool_bench.rs",
 
362
  "sha256": "4c09ed117524087a90957720b63d4546728611a14a1b4ca07808e4bbff9c7e0b"
363
  },
364
  {
365
- "bytes": 20559,
366
  "path": "native/src/uniform_vnni.rs",
 
367
  "sha256": "5abe3c868338d4dcdb5ae3e22d1d321caaaefdef8980d12b0cef7c9b649bd7ec"
368
  },
369
  {
370
- "bytes": 25702,
371
  "path": "native/src/uniform_vnni_tests.rs",
 
372
  "sha256": "ea557ba55e65d5b3ea0f5eef67efec380569ca59fbd9b7de597508d5739f2087"
373
  },
374
  {
375
- "bytes": 6607,
376
  "path": "native/src/waveform.rs",
 
377
  "sha256": "dc12ea14ce3153ef090e5419a26d14976e0f1616af7bff982cc7542832d142e5"
378
  },
379
  {
380
- "bytes": 1312,
381
  "path": "native/tests/bf16_mode.rs",
 
382
  "sha256": "7445142552b58074f1b2a3b2cddcc0b56d24cc7e123e99d71f8a3fbf762cf726"
383
  },
384
  {
385
- "bytes": 722,
386
  "path": "native/tests/cross_language.rs",
 
387
  "sha256": "fd0f9ac2d8503b6119168a5aece86a35f68fb704de6b500f240d4f262bdbb42d"
388
  },
389
  {
390
- "bytes": 441,
391
  "path": "native/tests/fixtures/model-loader-repack.a8m",
 
392
  "sha256": "4944b92ca3c264f0bdefe912e22bf6466f20900bf28f2dad15254e54a16471d4"
393
  },
394
  {
395
- "bytes": 228,
396
  "path": "native/tests/fixtures/model-loader-tiny.a8m",
 
397
  "sha256": "17212a36903c5bea49cf7515933f4e883be46819722ba66d276bafa28b7f3112"
398
  },
399
  {
400
- "bytes": 136,
401
  "path": "native/tests/fixtures/python_2bit.a8t",
 
402
  "sha256": "7163ea032a62771eb4da173afe9074c21e1071884e988dadf8026d3921b9b6e1"
403
  },
404
  {
405
- "bytes": 136,
406
  "path": "native/tests/fixtures/python_base3.a8t",
 
407
  "sha256": "71048e4436c8ccde36b02678dae84fcd31df9b790df488ff86f7789c7840b726"
408
  },
409
  {
410
- "bytes": 124,
411
  "path": "native/tests/fixtures/python_base3_f16.a8t",
 
412
  "sha256": "7e540ff0e9999defd525ff7e564f0316d530eff736e01cbf05f01b4935e6c732"
413
  },
414
  {
415
- "bytes": 176,
416
  "path": "native/tests/fixtures/python_uniform3.a8u",
 
417
  "sha256": "0451ea79d64d822a6b5b43564c8a778695fb45c0cac21091ff53c296bb36f34c"
418
  },
419
  {
420
- "bytes": 184,
421
  "path": "native/tests/fixtures/python_uniform4.a8u",
 
422
  "sha256": "36a82ccc28d68aa422f6b05f4f8598887acc6eb4f74e51e56911ad99ed600030"
423
  },
424
  {
425
- "bytes": 120,
426
  "path": "native/tests/fixtures/python_uniform_v2_q3full.a8u",
 
427
  "sha256": "3bf09e70f70f1223060df07f8cc884870ca55445a1e63d6668decf8c987934c3"
428
  },
429
  {
430
- "bytes": 120,
431
  "path": "native/tests/fixtures/python_uniform_v2_q3symmetric.a8u",
 
432
  "sha256": "fd69488ffdb9bc6e563e99e899c9a2d124e2939c6d0c8a5947321b5cab467a83"
433
  },
434
  {
435
- "bytes": 123,
436
  "path": "native/tests/fixtures/python_uniform_v2_q4symmetric.a8u",
 
437
  "sha256": "3826cf69557fc55358055c5f0e5134d917a040461a49e1d7e1d3a07d0bc4332d"
438
  },
439
  {
440
- "bytes": 1486,
441
  "path": "native/tests/generate_fixtures.py",
 
442
  "sha256": "96e20416293f5ce0f5a1dcd7905ff4e57d84441a01951011b17a1d56d9063d79"
443
  },
444
  {
445
- "bytes": 1263,
446
  "path": "native/tests/generate_uniform_fixtures.py",
 
447
  "sha256": "cf7670258c1f06f51121f570b6894c89867501852aa7418779599b67c0bcd974"
448
  },
449
  {
450
- "bytes": 1475,
451
  "path": "native/tests/generate_uniform_v2_fixtures.py",
 
452
  "sha256": "ffe61cee7b909b9e777a2ebb16fcd9e64f9000cf03125aeb2478886f379a7c09"
453
  },
454
  {
455
- "bytes": 10200,
456
  "path": "native/tests/uniform_blocked.rs",
 
457
  "sha256": "7660d9db87e9ef520552118c1df6a4a176c189ecb0f9d738bff3fd5ebdf60bcb"
458
  },
459
  {
460
- "bytes": 1437,
461
  "path": "native/tests/uniform_cross_language.rs",
 
462
  "sha256": "016219c01c0189abc0ad04a7bba3b505d351e626ed6241905d3ee78fc5102a23"
463
  },
464
  {
465
- "bytes": 8186,
466
  "path": "native/tests/uniform_parallel.rs",
 
467
  "sha256": "0f3817097616bf033cb711856669a70b375196bb1e331ff09f95a13792c80201"
468
  },
469
  {
470
- "bytes": 7103,
471
  "path": "native/tests/uniform_rows.rs",
 
472
  "sha256": "21c3d0c4f995136dc1d5ff6f8b1dc64978882f661aee469a1abe9c5043c6e896"
473
  },
474
  {
475
- "bytes": 31427,
476
  "path": "vad_probe/Cargo.lock",
 
477
  "sha256": "37ff846220ca490f2d38da5b2d9c777dadc0810f07b17f1ccb471f088b8929d0"
478
  },
479
  {
480
- "bytes": 339,
481
  "path": "vad_probe/Cargo.toml",
 
482
  "sha256": "0313aae93c91e3a6a07c17b9e2381f4bbe642f4ec1ef15c5bdf09972ca967971"
483
  },
484
  {
485
- "bytes": 3679,
486
  "path": "vad_probe/README.md",
 
487
  "sha256": "1cf43bd4fc5fea573bb2c81624b332056daee24b7bc7cb5ad03a7ea78bce80dd"
488
  },
489
  {
490
- "bytes": 7880,
491
  "path": "vad_probe/src/constant_if.rs",
 
492
  "sha256": "c41baec97501b5f9323baa0107f64085817fbee5c1c0d20d48ee2e4a4751dc92"
493
  },
494
  {
495
- "bytes": 5207,
496
  "path": "vad_probe/src/lib.rs",
 
497
  "sha256": "674f62dea8c10e5840013fa70cbcfc590785e5082d417488decf549185217890"
498
  },
499
  {
500
- "bytes": 7988,
501
  "path": "vad_probe/src/main.rs",
 
502
  "sha256": "e19bf9843c239096be13a2292430866c51385418caa2c7e56244c4817d5b8b5c"
503
  },
504
  {
505
- "bytes": 1621,
506
  "path": "vad_probe/tests/detector_state.rs",
 
507
  "sha256": "cf8f4048735d4d4cc0bbb51c20d82f42e99aaca33bf261a3adf15a2160edc384"
508
  },
509
  {
510
- "bytes": 10280,
511
  "path": "vendor/kleidiai-audio8-bridge/Apache-2.0.txt",
 
512
  "sha256": "074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff"
513
  },
514
  {
515
- "bytes": 2127,
516
  "path": "vendor/kleidiai-audio8-bridge/i8mm-provenance.json",
 
517
  "sha256": "db2f7d7ad48437e2b450647de27dfd298f839cfa60b67f62da0006b127e9ad92"
518
  },
519
  {
520
- "bytes": 5492,
521
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p1x4_qsi4c32p4x4_1x4_neon_dotprod.c",
 
522
  "sha256": "a131721eea403bf66480562ca7f8eff762c43667ff503c89aef12bf53846b470"
523
  },
524
  {
525
- "bytes": 6057,
526
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p1x4_qsi4c32p4x4_1x4_neon_dotprod.h",
 
527
  "sha256": "4ba32f84553127a082694b3ba8b301ce520b54a1992dfeea3ba764dfd8635885"
528
  },
529
  {
530
- "bytes": 4847,
531
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p1x4_qsi4c32p4x4_1x4_neon_dotprod_asm.S",
 
532
  "sha256": "95723c9bacd5c2503b79642cba09091d545c58c2a2561ce785cedc455a13b868"
533
  },
534
  {
535
- "bytes": 5055,
536
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p1x4_qsi4c32p4x4_1x4_neon_dotprod_audio8_f32scale_asm.S",
 
537
  "sha256": "26b3ef50c69d0f35f414c4991561ad0306ef4575053ed8b182be4503216696dc"
538
  },
539
  {
540
- "bytes": 5590,
541
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x4_qsi4c32p4x4_16x4_neon_dotprod.c",
 
542
  "sha256": "8817e83091e7495e2d93485cbc891340f8d34e80750e011ef75e8c61eb2afbb2"
543
  },
544
  {
545
- "bytes": 6086,
546
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x4_qsi4c32p4x4_16x4_neon_dotprod.h",
 
547
  "sha256": "b2a88f248b2da47782e5a0db55179c71c7ad5bbecdef9fe52cbfa0907064b2f7"
548
  },
549
  {
550
- "bytes": 26302,
551
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x4_qsi4c32p4x4_16x4_neon_dotprod_asm.S",
 
552
  "sha256": "42576fec3f194cb1d8639d34c9be044101d62422d9f4afef5fea8455bcf58f09"
553
  },
554
  {
555
- "bytes": 26422,
556
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x4_qsi4c32p4x4_16x4_neon_dotprod_audio8_f32scale_asm.S",
 
557
  "sha256": "a2289e9a9517142dceff07ae58c0c78159f5521636172954aead083591bd03c0"
558
  },
559
  {
560
- "bytes": 21760,
561
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x8_qsi4c32p4x8_16x4_neon_i8mm_audio8_f32scale_asm.S",
 
562
  "sha256": "ab1a940870777fae2aca654d66720146a5b7dc4e981451b42cae1a31565cff5d"
563
  },
564
  {
565
- "bytes": 3129,
566
  "path": "vendor/kleidiai-audio8-bridge/provenance.json",
 
567
  "sha256": "179e0843a453ee083105a5222094eaa7bfce714e68d96baabaec38e824fdefa7"
 
 
 
 
 
 
 
 
 
 
568
  }
569
  ],
570
- "parent_manifest_sha256": "e9f9b161ec0dd24d002de3698fec30e3a4f3dd8a623f45dbc7b60e424d15208e",
571
- "runtime_profile": "Existing AVX512 BF16 packed ASR + actual tract Silero; RT18/240ms/B1; no quality acceptance.",
572
- "schema": "audio8.native_caption_source.v2"
 
 
 
 
 
 
 
 
573
  }
 
1
  {
2
+ "format": "audio8-caption-constant-prefix-source-v1",
3
+ "archive_sha256": "fd68ec98f70ea455621adb1318b467cec36221dd9b66212f3e81cf5d92c48692",
4
  "files": [
5
  {
 
6
  "path": "native/Cargo.lock",
7
+ "bytes": 31781,
8
  "sha256": "4abcfff3e11e077bfea35a5a3f603c9bd84cc0c434127be4158d1b00874091f5"
9
  },
10
  {
 
11
  "path": "native/Cargo.toml",
12
+ "bytes": 1320,
13
  "sha256": "5feba8ba3cb2cb71724a8291d053cdf2f3fdbc00a658fbfe9283dcbcdee10bd6"
14
  },
15
  {
 
16
  "path": "native/README.md",
17
+ "bytes": 29103,
18
  "sha256": "f9186db9d68755144fce60df1bb6a5a073ae57dab464cfda36668b0d50b28da0"
19
  },
20
  {
 
21
  "path": "native/build.rs",
22
+ "bytes": 2531,
23
  "sha256": "c2154356fa2d554ed01dbb17ee234a71c1db29e1ccaca8ee92d63eb5a12eb0cc"
24
  },
25
  {
 
26
  "path": "native/examples/bench_conv.rs",
27
+ "bytes": 2205,
28
  "sha256": "13749a0b7a66c20c9ea034602e0130fe7cfed381e82a16fa08704903d79902f7"
29
  },
30
  {
 
31
  "path": "native/examples/bench_encoder_attention.rs",
32
+ "bytes": 3464,
33
  "sha256": "b7b872524f957a23909a246211a5f0b6656ddfd561c89e2244d638c99aa8a7b9"
34
  },
35
  {
 
36
  "path": "native/examples/bench_pool_policy.rs",
37
+ "bytes": 4347,
38
  "sha256": "0d6a97bac74d463fecf9e39fc6f1f0cec85c022dbef65b07ad81848281cbb3d0"
39
  },
40
  {
 
41
  "path": "native/examples/bench_portable_conv.rs",
42
+ "bytes": 5037,
43
  "sha256": "1b7c5c2c09f93342e5e6ce4f62ea25028ce6047a539cfc358f39954f2d765691"
44
  },
45
  {
 
46
  "path": "native/examples/bench_uniform_bitplanes.rs",
47
+ "bytes": 4531,
48
  "sha256": "790da0a9498184856bae1f2debc154e6b51601945c7770befb874ea002e50cf3"
49
  },
50
  {
 
51
  "path": "native/examples/bench_uniform_blocked.rs",
52
+ "bytes": 4611,
53
  "sha256": "a8bd32aeddb44ebc94b7cb0d14f395cfc4170c51f2e8305f9948b6f0a14fc8dd"
54
  },
55
  {
 
56
  "path": "native/examples/bench_uniform_int8.rs",
57
+ "bytes": 4411,
58
  "sha256": "17b57afa94a4da9509cbd04027e96d50fbf6e0d01ca5b67d2426d2c8f554564a"
59
  },
60
  {
 
61
  "path": "native/examples/bench_uniform_parallel.rs",
62
+ "bytes": 3960,
63
  "sha256": "1a4948d1ca678cc704301efa6111dee1647285d8be8df10e9549052845d425e9"
64
  },
65
  {
 
66
  "path": "native/examples/bench_uniform_rows4.rs",
67
+ "bytes": 4952,
68
  "sha256": "654e53c42603d38a335489c28b6eac7e5d5d5a2bfd64e692eeb60329cd483e99"
69
  },
70
  {
 
71
  "path": "native/examples/bench_uniform_simd.rs",
72
+ "bytes": 4688,
73
  "sha256": "0d40a3e28bdc478b23664b4bdfb7256e44281566e325c2b107fb5a1a08dec1aa"
74
  },
75
  {
 
76
  "path": "native/examples/check_cache_storage.rs",
77
+ "bytes": 3581,
78
  "sha256": "0e5ad6bc5e1450d36d04e5f104c1bb3ea7a395c296aa215bc268b3978f7ef10b"
79
  },
80
  {
 
81
  "path": "native/examples/check_decoder_chunk.rs",
82
+ "bytes": 2951,
83
  "sha256": "a972dea793e96797c6e3e9388735e349f9fe624d023b7e2fb818905840640fc8"
84
  },
85
  {
 
86
  "path": "native/examples/check_encoder_chunk.rs",
87
+ "bytes": 4458,
88
  "sha256": "4141c152274751ade976ea566274622add3fa312505df1a0a5ae67367ae747bb"
89
  },
90
  {
 
91
  "path": "native/examples/check_model.rs",
92
+ "bytes": 1008,
93
  "sha256": "424fd41003ae137836593b7d7182404bac1ce9b26b3709107ad3030083ada410"
94
  },
95
  {
 
96
  "path": "native/examples/gated_audio_oracle.rs",
97
+ "bytes": 2556,
98
  "sha256": "97c0b33b8cc8b6d6fdd870e4d4e767ffbc7844a37ca7585339d127e96efd035d"
99
  },
100
  {
 
101
  "path": "native/examples/nonlinear-bench.c",
102
+ "bytes": 3687,
103
  "sha256": "f21587f4306cfd868525ade53182c5aa4369fc42e6dc7b8f54e09f39795e8601"
104
  },
105
  {
 
106
  "path": "native/examples/nonrolling_stream_probe.rs",
107
+ "bytes": 15246,
108
  "sha256": "86a9236dfbac4d10572d75b41aa076cdc6147573913242e94110233c744c583f"
109
  },
110
  {
 
111
  "path": "native/examples/qos-probe.c",
112
+ "bytes": 968,
113
  "sha256": "d3a573bc80d5ae32facea4fe25213a18b1ad81a38390cfe619a58b199681b6f7"
114
  },
115
  {
 
116
  "path": "native/examples/sha256_stream.rs",
117
+ "bytes": 2049,
118
  "sha256": "8f7c8ca375233b59a5e12170317420ffd1e56aaeafb2a5e42d47da4439d9b022"
119
  },
120
  {
 
121
  "path": "native/src/attention_head_local_tests.rs",
122
+ "bytes": 5771,
123
  "sha256": "6c15116ddcfa399c0d87093918f3e618ddace332ae467e2e0ae71f8d438c5c16"
124
  },
125
  {
 
126
  "path": "native/src/attention_math.rs",
127
+ "bytes": 32948,
128
  "sha256": "243483eb07feb34f07cb7be1f90b7c68098875111214bc8269fa2399fec46b22"
129
  },
130
  {
 
131
  "path": "native/src/attention_x86.rs",
132
+ "bytes": 6823,
133
  "sha256": "20ee26d166b64e6574e07650c37a6b016b9fd02b76801778a93e522ad6cc2585"
134
  },
135
  {
 
136
  "path": "native/src/audio_path.rs",
137
+ "bytes": 28320,
138
  "sha256": "6f9a839012e518cd3f37f6e8464a254af2b2c3325dafdb01f6fa5447f4960c9b"
139
  },
140
  {
 
141
  "path": "native/src/bin/audio8-asr.rs",
142
+ "bytes": 27075,
143
  "sha256": "796870256040be1ecc9851ce9e72bc9522776e82327f9610a6b527b0edc8d1b8"
144
  },
145
  {
 
146
  "path": "native/src/bin/audio8-stream.rs",
147
+ "bytes": 37819,
148
+ "sha256": "019315a3a4c4f7272de0956be6677d1ec54866b320a69b9ff0614df0bbe6181f"
149
  },
150
  {
 
151
  "path": "native/src/bin/kleidi-bench.rs",
152
+ "bytes": 4886,
153
  "sha256": "b78b7f0831c6b7b61c5352001c8d2900686a44a00c181d61dbb3ebf8b9f06175"
154
  },
155
  {
 
156
  "path": "native/src/bin/support/runtime_platform.rs",
157
+ "bytes": 2415,
158
  "sha256": "0ab0e8cf673b3a41e207c37e82a0b41e7e93657a0f807308311b9c0fd527e906"
159
  },
160
  {
 
161
  "path": "native/src/bin/support/silero_stream.rs",
162
+ "bytes": 5782,
163
+ "sha256": "1ff226447f4899eb5799c75c8b4d48d0e2c8aa208c6778aa58b623c2273dfacb"
164
  },
165
  {
 
166
  "path": "native/src/bin/support/stream_common.rs",
167
+ "bytes": 3634,
168
  "sha256": "0f1972219a26bd6871f2f18cd0cf1279dd576638ae1782136c4792df818a10c1"
169
  },
170
  {
 
171
  "path": "native/src/caption_stream.rs",
172
+ "bytes": 24798,
173
+ "sha256": "d2ca9ed8ecb989fcf86a7ee9f54870bc1a6e8c3b73707a3dc05714d2f2126d8b"
174
  },
175
  {
 
176
  "path": "native/src/conditioning.rs",
177
+ "bytes": 7145,
178
  "sha256": "b99699ca70373281f9ec94d3f84484536a8eb9a85d1abd0350d3099105f327c2"
179
  },
180
  {
 
181
  "path": "native/src/conv_math.rs",
182
+ "bytes": 8058,
183
  "sha256": "0faa455bde072cedecd336548f17b4bfd54dca6addae0e899fd755dad19870c7"
184
  },
185
  {
 
186
  "path": "native/src/decoder.rs",
187
+ "bytes": 42388,
188
  "sha256": "6681de746aed594960824b8d1d34b8bfb13d0d8544218b6cf4747b09133e4f71"
189
  },
190
  {
 
191
  "path": "native/src/encoder.rs",
192
+ "bytes": 60417,
193
  "sha256": "89b7515ee98fff1d7c4fc51119bb028c5904c7b7882732294eae92804bd0f442"
194
  },
195
  {
 
196
  "path": "native/src/encoder_float_tests.rs",
197
+ "bytes": 9655,
198
  "sha256": "7f0d7a68227c4c3e0f6343bacb06cf770eb623c8f83f4010004f3cfcd1dac3ba"
199
  },
200
  {
 
201
  "path": "native/src/encoder_head_local_tests.rs",
202
+ "bytes": 7659,
203
  "sha256": "7fd1b32f3472a2823219fa0ced7d20dfa735932f334cebe460dd06b979170567"
204
  },
205
  {
 
206
  "path": "native/src/encoder_i8mm_tests.rs",
207
+ "bytes": 7293,
208
  "sha256": "8786f9fb09852232daa533f791f22c69bd02ad135016a2b136739597467269c0"
209
  },
210
  {
 
211
  "path": "native/src/encoder_phase_tests.rs",
212
+ "bytes": 16898,
213
  "sha256": "51160570e37fd8f776cc46d9909b1410983307a423db6e39b3467fd52b2c7cd8"
214
  },
215
  {
 
216
  "path": "native/src/encoder_tiled_attention.rs",
217
+ "bytes": 12407,
218
+ "sha256": "08956db5a69de6269ca206c2761cf91fc67e9a1e44e1d35c7037537be742fbe4"
219
  },
220
  {
 
221
  "path": "native/src/encoder_tiled_attention_tests.rs",
222
+ "bytes": 25008,
223
+ "sha256": "523567137fafdab39329135e273168549f98d479a2d44859b49dea4881e33a4d"
224
  },
225
  {
 
226
  "path": "native/src/encoder_x86_attention_tests.rs",
227
+ "bytes": 6157,
228
  "sha256": "f1725764917be7a7c6a31056b9b70d7dcebe0fb3f1dde29de552c9be749560ca"
229
  },
230
  {
 
231
  "path": "native/src/engine.rs",
232
+ "bytes": 60759,
233
  "sha256": "9845f0e771241b67e3640add3401b6a9cdf24af2b826dcb9960b1937a3b45a0e"
234
  },
235
  {
 
236
  "path": "native/src/fast_sha256.rs",
237
+ "bytes": 4979,
238
  "sha256": "34e14383a5d82db0396cb55571d750c8d0bb02c0680415243114b8204c111fe6"
239
  },
240
  {
 
241
  "path": "native/src/frontend.rs",
242
+ "bytes": 8884,
243
  "sha256": "1dd5c23afa9af4a294f7efdf942e6b6a2b6c3abddaa44839c57f92b8b093b519"
244
  },
245
  {
 
246
  "path": "native/src/gated_audio.rs",
247
+ "bytes": 13860,
248
  "sha256": "4207564489bb02e305cc04e03cb99759dbd1ec8a711c07aab010cc99f740376f"
249
  },
250
  {
 
251
  "path": "native/src/kv_storage.rs",
252
+ "bytes": 24390,
253
+ "sha256": "a0e8dce85ae12f0bcb6603184e725e51d941a4206f11f09369258f1a5a409e0f"
254
  },
255
  {
 
256
  "path": "native/src/lib.rs",
257
+ "bytes": 28763,
258
  "sha256": "ebed9b2b955c3f442c986bdfcdb08256d1f42043af9c827ee924b7f2ef102726"
259
  },
260
  {
 
261
  "path": "native/src/live_audio.rs",
262
+ "bytes": 18738,
263
  "sha256": "aecfefe0c0a082a1f4c081a431f52c45a04e5dc15c83331f9e0d8e610eec17ee"
264
  },
265
  {
 
266
  "path": "native/src/main.rs",
267
+ "bytes": 22330,
268
  "sha256": "bf0c6940b2bbf6fff892a1e75bcb17ae2fa45a7c7b3b062caa3c34647f0c93dd"
269
  },
270
  {
 
271
  "path": "native/src/model_loader.rs",
272
+ "bytes": 29791,
273
  "sha256": "5672b0fbfc97be698b4187d8860bd327ecc14b4ae921058c99ef576ad5c97233"
274
  },
275
  {
 
276
  "path": "native/src/nonlinear.rs",
277
+ "bytes": 5159,
278
  "sha256": "444c3eb7020e907841516302a714f0acfd09f0a2820231769fe6d6762f3e26b7"
279
  },
280
  {
 
281
  "path": "native/src/prefix_cache.rs",
282
+ "bytes": 22884,
283
  "sha256": "41b8a5eca00a9c817e920837fda1adce7ee50c7e17bef6dcd6a777f41e120c7f"
284
  },
285
  {
 
286
  "path": "native/src/rotary.rs",
287
+ "bytes": 6993,
288
  "sha256": "1dd58564040c0a5853248aaa92304e0dbb543fa3a5950ff0c4159043502afe79"
289
  },
290
  {
 
291
  "path": "native/src/row_pool.rs",
292
+ "bytes": 18993,
293
  "sha256": "689e56cdb9fced428cb21b9af5df8ac737ca14a17a52a70fc1777f992bd5a20b"
294
  },
295
  {
 
296
  "path": "native/src/streaming_plan.rs",
297
+ "bytes": 20708,
298
  "sha256": "e5abad8865d041ae027006b3035f685b78da3ea42c82f893a1788077419ce8b2"
299
  },
300
  {
 
301
  "path": "native/src/tokenizer.rs",
302
+ "bytes": 27506,
303
  "sha256": "c391a00a85f67cb4b22bd99bb299054da4ec41a617febd10eaa0875b08932b7e"
304
  },
305
  {
 
306
  "path": "native/src/uniform.rs",
307
+ "bytes": 58734,
308
  "sha256": "90f58bfd8745c9a7a4d57132a9594d3c1a0962bba819f781880754a267156c48"
309
  },
310
  {
 
311
  "path": "native/src/uniform_avx2.rs",
312
+ "bytes": 14263,
313
  "sha256": "775e85ba2cf49394a8c0616f7310fad352bd366089ee539e8bd30c5ab577c16e"
314
  },
315
  {
 
316
  "path": "native/src/uniform_bf16.rs",
317
+ "bytes": 4958,
318
  "sha256": "e72c089c5f29524d086aaff69f40484b247f73aa103271047341d4801a3b8d56"
319
  },
320
  {
 
321
  "path": "native/src/uniform_float.rs",
322
+ "bytes": 11776,
323
  "sha256": "7eec50e160676833a892d90b6db3fd051fd6bb39ac268671e4a56f5049b019f2"
324
  },
325
  {
 
326
  "path": "native/src/uniform_float_tests.rs",
327
+ "bytes": 11688,
328
  "sha256": "0bf94500fee3fedcdfb69eff0e127b98f3fd4d78aac4c717a627648d3a9e5056"
329
  },
330
  {
 
331
  "path": "native/src/uniform_i8mm_tests.rs",
332
+ "bytes": 7870,
333
  "sha256": "72b0ede31c3938a3b99dbe8724268bfd686cd8a44a81c4c92e63281cdeb4552c"
334
  },
335
  {
 
336
  "path": "native/src/uniform_int16.rs",
337
+ "bytes": 18393,
338
  "sha256": "0543b2e4db1614450cf285f49bdf4cd1f9b23b8e6657800e394422fa531f9efd"
339
  },
340
  {
 
341
  "path": "native/src/uniform_int16_vnni.rs",
342
+ "bytes": 8030,
343
  "sha256": "04854b6adf2f96315080644c2f824c5f106d25ef27c22d6295d6b1d1e388ee21"
344
  },
345
  {
 
346
  "path": "native/src/uniform_int16_vnni_tests.rs",
347
+ "bytes": 9755,
348
  "sha256": "7a883c4c54ac8fecbaa9bc8448887f8f9fa91ad5fed9627717a6d3e32adee47a"
349
  },
350
  {
 
351
  "path": "native/src/uniform_int8.rs",
352
+ "bytes": 70708,
353
  "sha256": "f5c0fb55b3f35b6c88e1ff2b4a70088b18eefaf091e5fcef6666991265f16ac8"
354
  },
355
  {
 
356
  "path": "native/src/uniform_kleidi.rs",
357
+ "bytes": 32842,
358
  "sha256": "5c8921b221bdf4c0f3ec78216fb64825e873f429bde1abf726c4527c58a7aaf6"
359
  },
360
  {
 
361
  "path": "native/src/uniform_pool_bench.rs",
362
+ "bytes": 5536,
363
  "sha256": "4c09ed117524087a90957720b63d4546728611a14a1b4ca07808e4bbff9c7e0b"
364
  },
365
  {
 
366
  "path": "native/src/uniform_vnni.rs",
367
+ "bytes": 20559,
368
  "sha256": "5abe3c868338d4dcdb5ae3e22d1d321caaaefdef8980d12b0cef7c9b649bd7ec"
369
  },
370
  {
 
371
  "path": "native/src/uniform_vnni_tests.rs",
372
+ "bytes": 25702,
373
  "sha256": "ea557ba55e65d5b3ea0f5eef67efec380569ca59fbd9b7de597508d5739f2087"
374
  },
375
  {
 
376
  "path": "native/src/waveform.rs",
377
+ "bytes": 6607,
378
  "sha256": "dc12ea14ce3153ef090e5419a26d14976e0f1616af7bff982cc7542832d142e5"
379
  },
380
  {
 
381
  "path": "native/tests/bf16_mode.rs",
382
+ "bytes": 1312,
383
  "sha256": "7445142552b58074f1b2a3b2cddcc0b56d24cc7e123e99d71f8a3fbf762cf726"
384
  },
385
  {
 
386
  "path": "native/tests/cross_language.rs",
387
+ "bytes": 722,
388
  "sha256": "fd0f9ac2d8503b6119168a5aece86a35f68fb704de6b500f240d4f262bdbb42d"
389
  },
390
  {
 
391
  "path": "native/tests/fixtures/model-loader-repack.a8m",
392
+ "bytes": 441,
393
  "sha256": "4944b92ca3c264f0bdefe912e22bf6466f20900bf28f2dad15254e54a16471d4"
394
  },
395
  {
 
396
  "path": "native/tests/fixtures/model-loader-tiny.a8m",
397
+ "bytes": 228,
398
  "sha256": "17212a36903c5bea49cf7515933f4e883be46819722ba66d276bafa28b7f3112"
399
  },
400
  {
 
401
  "path": "native/tests/fixtures/python_2bit.a8t",
402
+ "bytes": 136,
403
  "sha256": "7163ea032a62771eb4da173afe9074c21e1071884e988dadf8026d3921b9b6e1"
404
  },
405
  {
 
406
  "path": "native/tests/fixtures/python_base3.a8t",
407
+ "bytes": 136,
408
  "sha256": "71048e4436c8ccde36b02678dae84fcd31df9b790df488ff86f7789c7840b726"
409
  },
410
  {
 
411
  "path": "native/tests/fixtures/python_base3_f16.a8t",
412
+ "bytes": 124,
413
  "sha256": "7e540ff0e9999defd525ff7e564f0316d530eff736e01cbf05f01b4935e6c732"
414
  },
415
  {
 
416
  "path": "native/tests/fixtures/python_uniform3.a8u",
417
+ "bytes": 176,
418
  "sha256": "0451ea79d64d822a6b5b43564c8a778695fb45c0cac21091ff53c296bb36f34c"
419
  },
420
  {
 
421
  "path": "native/tests/fixtures/python_uniform4.a8u",
422
+ "bytes": 184,
423
  "sha256": "36a82ccc28d68aa422f6b05f4f8598887acc6eb4f74e51e56911ad99ed600030"
424
  },
425
  {
 
426
  "path": "native/tests/fixtures/python_uniform_v2_q3full.a8u",
427
+ "bytes": 120,
428
  "sha256": "3bf09e70f70f1223060df07f8cc884870ca55445a1e63d6668decf8c987934c3"
429
  },
430
  {
 
431
  "path": "native/tests/fixtures/python_uniform_v2_q3symmetric.a8u",
432
+ "bytes": 120,
433
  "sha256": "fd69488ffdb9bc6e563e99e899c9a2d124e2939c6d0c8a5947321b5cab467a83"
434
  },
435
  {
 
436
  "path": "native/tests/fixtures/python_uniform_v2_q4symmetric.a8u",
437
+ "bytes": 123,
438
  "sha256": "3826cf69557fc55358055c5f0e5134d917a040461a49e1d7e1d3a07d0bc4332d"
439
  },
440
  {
 
441
  "path": "native/tests/generate_fixtures.py",
442
+ "bytes": 1486,
443
  "sha256": "96e20416293f5ce0f5a1dcd7905ff4e57d84441a01951011b17a1d56d9063d79"
444
  },
445
  {
 
446
  "path": "native/tests/generate_uniform_fixtures.py",
447
+ "bytes": 1263,
448
  "sha256": "cf7670258c1f06f51121f570b6894c89867501852aa7418779599b67c0bcd974"
449
  },
450
  {
 
451
  "path": "native/tests/generate_uniform_v2_fixtures.py",
452
+ "bytes": 1475,
453
  "sha256": "ffe61cee7b909b9e777a2ebb16fcd9e64f9000cf03125aeb2478886f379a7c09"
454
  },
455
  {
 
456
  "path": "native/tests/uniform_blocked.rs",
457
+ "bytes": 10200,
458
  "sha256": "7660d9db87e9ef520552118c1df6a4a176c189ecb0f9d738bff3fd5ebdf60bcb"
459
  },
460
  {
 
461
  "path": "native/tests/uniform_cross_language.rs",
462
+ "bytes": 1437,
463
  "sha256": "016219c01c0189abc0ad04a7bba3b505d351e626ed6241905d3ee78fc5102a23"
464
  },
465
  {
 
466
  "path": "native/tests/uniform_parallel.rs",
467
+ "bytes": 8186,
468
  "sha256": "0f3817097616bf033cb711856669a70b375196bb1e331ff09f95a13792c80201"
469
  },
470
  {
 
471
  "path": "native/tests/uniform_rows.rs",
472
+ "bytes": 7103,
473
  "sha256": "21c3d0c4f995136dc1d5ff6f8b1dc64978882f661aee469a1abe9c5043c6e896"
474
  },
475
  {
 
476
  "path": "vad_probe/Cargo.lock",
477
+ "bytes": 31427,
478
  "sha256": "37ff846220ca490f2d38da5b2d9c777dadc0810f07b17f1ccb471f088b8929d0"
479
  },
480
  {
 
481
  "path": "vad_probe/Cargo.toml",
482
+ "bytes": 339,
483
  "sha256": "0313aae93c91e3a6a07c17b9e2381f4bbe642f4ec1ef15c5bdf09972ca967971"
484
  },
485
  {
 
486
  "path": "vad_probe/README.md",
487
+ "bytes": 3679,
488
  "sha256": "1cf43bd4fc5fea573bb2c81624b332056daee24b7bc7cb5ad03a7ea78bce80dd"
489
  },
490
  {
 
491
  "path": "vad_probe/src/constant_if.rs",
492
+ "bytes": 7880,
493
  "sha256": "c41baec97501b5f9323baa0107f64085817fbee5c1c0d20d48ee2e4a4751dc92"
494
  },
495
  {
 
496
  "path": "vad_probe/src/lib.rs",
497
+ "bytes": 5207,
498
  "sha256": "674f62dea8c10e5840013fa70cbcfc590785e5082d417488decf549185217890"
499
  },
500
  {
 
501
  "path": "vad_probe/src/main.rs",
502
+ "bytes": 7988,
503
  "sha256": "e19bf9843c239096be13a2292430866c51385418caa2c7e56244c4817d5b8b5c"
504
  },
505
  {
 
506
  "path": "vad_probe/tests/detector_state.rs",
507
+ "bytes": 1621,
508
  "sha256": "cf8f4048735d4d4cc0bbb51c20d82f42e99aaca33bf261a3adf15a2160edc384"
509
  },
510
  {
 
511
  "path": "vendor/kleidiai-audio8-bridge/Apache-2.0.txt",
512
+ "bytes": 10280,
513
  "sha256": "074e6e32c86a4c0ef8b3ed25b721ca23aca83df277cd88106ef7177c354615ff"
514
  },
515
  {
 
516
  "path": "vendor/kleidiai-audio8-bridge/i8mm-provenance.json",
517
+ "bytes": 2127,
518
  "sha256": "db2f7d7ad48437e2b450647de27dfd298f839cfa60b67f62da0006b127e9ad92"
519
  },
520
  {
 
521
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p1x4_qsi4c32p4x4_1x4_neon_dotprod.c",
522
+ "bytes": 5492,
523
  "sha256": "a131721eea403bf66480562ca7f8eff762c43667ff503c89aef12bf53846b470"
524
  },
525
  {
 
526
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p1x4_qsi4c32p4x4_1x4_neon_dotprod.h",
527
+ "bytes": 6057,
528
  "sha256": "4ba32f84553127a082694b3ba8b301ce520b54a1992dfeea3ba764dfd8635885"
529
  },
530
  {
 
531
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p1x4_qsi4c32p4x4_1x4_neon_dotprod_asm.S",
532
+ "bytes": 4847,
533
  "sha256": "95723c9bacd5c2503b79642cba09091d545c58c2a2561ce785cedc455a13b868"
534
  },
535
  {
 
536
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p1x4_qsi4c32p4x4_1x4_neon_dotprod_audio8_f32scale_asm.S",
537
+ "bytes": 5055,
538
  "sha256": "26b3ef50c69d0f35f414c4991561ad0306ef4575053ed8b182be4503216696dc"
539
  },
540
  {
 
541
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x4_qsi4c32p4x4_16x4_neon_dotprod.c",
542
+ "bytes": 5590,
543
  "sha256": "8817e83091e7495e2d93485cbc891340f8d34e80750e011ef75e8c61eb2afbb2"
544
  },
545
  {
 
546
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x4_qsi4c32p4x4_16x4_neon_dotprod.h",
547
+ "bytes": 6086,
548
  "sha256": "b2a88f248b2da47782e5a0db55179c71c7ad5bbecdef9fe52cbfa0907064b2f7"
549
  },
550
  {
 
551
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x4_qsi4c32p4x4_16x4_neon_dotprod_asm.S",
552
+ "bytes": 26302,
553
  "sha256": "42576fec3f194cb1d8639d34c9be044101d62422d9f4afef5fea8455bcf58f09"
554
  },
555
  {
 
556
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x4_qsi4c32p4x4_16x4_neon_dotprod_audio8_f32scale_asm.S",
557
+ "bytes": 26422,
558
  "sha256": "a2289e9a9517142dceff07ae58c0c78159f5521636172954aead083591bd03c0"
559
  },
560
  {
 
561
  "path": "vendor/kleidiai-audio8-bridge/kai_matmul_clamp_f32_qsi8d32p4x8_qsi4c32p4x8_16x4_neon_i8mm_audio8_f32scale_asm.S",
562
+ "bytes": 21760,
563
  "sha256": "ab1a940870777fae2aca654d66720146a5b7dc4e981451b42cae1a31565cff5d"
564
  },
565
  {
 
566
  "path": "vendor/kleidiai-audio8-bridge/provenance.json",
567
+ "bytes": 3129,
568
  "sha256": "179e0843a453ee083105a5222094eaa7bfce714e68d96baabaec38e824fdefa7"
569
+ },
570
+ {
571
+ "path": "native/src/encoder_tiled_attention_x86.rs",
572
+ "bytes": 2093,
573
+ "sha256": "047afbbca2845290a4d4fa4e7e9027c646cce5039cb67aa3c0d794cc6e2d1802"
574
+ },
575
+ {
576
+ "path": "native/src/kv_rebase_x86.rs",
577
+ "bytes": 9347,
578
+ "sha256": "8508cc3cf6c266617948e2230513d72eaf34d8632c3c4141d67fbb27fb90b3c2"
579
  }
580
  ],
581
+ "changed_from_tiled_stream": [
582
+ "native/src/kv_storage.rs",
583
+ "native/src/kv_rebase_x86.rs"
584
+ ],
585
+ "v1_failure": "NaN arithmetic payload mismatch outside accepted cache input contract; preserved v1 logs. v2 checks all finite BF16 input patterns, exact finite results, nonfinite result rejection class, and retains exhaustive rounding NaN payload checks.",
586
+ "v2_note": "All test commands passed; runner failed parsing first benchmark JSON after test-name prefix. Logs preserved. v3 strengthens whole-cache overflow atomicity for vector dimensions 16 and 64 and fixes parser.",
587
+ "changed_from_rebase_v3": [
588
+ "native/src/bin/audio8-stream.rs",
589
+ "native/src/bin/support/silero_stream.rs"
590
+ ],
591
+ "scope": "Opt-in existing constant-prefix import/export in Silero caption mode; executable/profile-bound, checksum verified at every reset, no hidden generation during recognition."
592
  }
release_manifest.json CHANGED
@@ -12,14 +12,15 @@
12
  "runtime_components": {
13
  "native": {
14
  "status": "focused_tests_passed",
15
- "scope": "Linux x86_64, Ubuntu22.04 build, GLIBC\u22652.35; exact native inference evidence is reported separately.",
16
  "tests": {
17
- "caption": 6,
18
  "gated": 3,
19
- "cli": 8,
20
  "bf16_mode": 1
21
  },
22
- "unfiltered_library_suite_run": false
 
23
  },
24
  "mlx": {
25
  "status": "full_input_diagnostic_passed",
@@ -34,7 +35,7 @@
34
  "AMD integrated Vulkan is slower than the input clock in this smoke.",
35
  "WorkRTF includes VAD-gated silence; it is not sustained uninterrupted-speech throughput.",
36
  "ProcessRSS excludes device-resident GPU allocation. PeakGPU memory was not sampled; buffer/payload figures are separate.",
37
- "Known long-speech omissions, memory target misses and sustained/native latency failures remain; fresh qualification was not run."
38
  ],
39
  "glibc_required": "2.43",
40
  "linkage_scope": "CLI resolves adjacent bridge via $ORIGIN; external GPU driver and matching system runtime libraries are required.",
@@ -49,7 +50,7 @@
49
  "AMD integrated Vulkan is slower than the input clock in this smoke.",
50
  "WorkRTF includes VAD-gated silence; it is not sustained uninterrupted-speech throughput.",
51
  "ProcessRSS excludes device-resident GPU allocation. PeakGPU memory was not sampled; buffer/payload figures are separate.",
52
- "Known long-speech omissions, memory target misses and sustained/native latency failures remain; fresh qualification was not run."
53
  ],
54
  "glibc_required": "2.43",
55
  "linkage_scope": "CLI resolves adjacent bridge via $ORIGIN; external GPU driver and matching system runtime libraries are required."
@@ -62,7 +63,7 @@
62
  "complete_runtime": false
63
  },
64
  "execution_profile": {
65
- "format": "audio8-experimental-execution-v1",
66
  "status": "experimental",
67
  "production_ready": false,
68
  "primary_native_platform": "linux-x86_64",
@@ -103,12 +104,13 @@
103
  "cache_dtype": "bfloat16",
104
  "worker_qos": "default",
105
  "pool_driver": true,
106
- "prefix_mode": "none",
107
  "cpu_affinity": {
108
  "policy": "linux-physical-cores-v1",
109
  "workers": 8
110
  },
111
- "nice": null
 
112
  },
113
  "caption": {
114
  "format": "audio8-silero-caption-profile-v1",
@@ -132,8 +134,10 @@
132
  "requirements_sha256": "d5a5d709779bc64a60b06fb9f4cf18bd8e492ee4934f6b730a8bfd076f26ad68"
133
  },
134
  "bindings": {
135
- "binary": "30486025c4ba0cb6d8f4d094b556fb22dbe7ecd2018caaeda740ed235ff51626",
136
- "model": "d40c393cfdb4fbd231c5fab593d844018b26f80d8a0113c9ae297b8edbee60ad"
 
 
137
  }
138
  }
139
  },
@@ -200,8 +204,8 @@
200
  },
201
  {
202
  "path": "README.md",
203
- "bytes": 13426,
204
- "sha256": "b00e1558b5bebbf7e3deeadc59e8d12b06eda452482192924340186fbd17b33b"
205
  },
206
  {
207
  "path": "THIRD_PARTY_NOTICES.md",
@@ -255,14 +259,39 @@
255
  },
256
  {
257
  "path": "bin/linux-x86_64/audio8-stream",
258
- "bytes": 28397232,
259
- "sha256": "30486025c4ba0cb6d8f4d094b556fb22dbe7ecd2018caaeda740ed235ff51626"
260
  },
261
  {
262
- "path": "evaluation/native-cpu-is1000a.json",
263
  "bytes": 5838,
264
  "sha256": "50f953d865bc9203e5f78db181ebfe8fb0576b537f9f435db6d6cf873adedee0"
265
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
266
  {
267
  "path": "evaluation/paired-quality.json",
268
  "bytes": 5940,
@@ -270,8 +299,8 @@
270
  },
271
  {
272
  "path": "execution_profile.json",
273
- "bytes": 5249,
274
- "sha256": "a2b8f0e326fa2d87b0ff165a034b6240742eeb22bc8020408956ac79ab0f3c2e"
275
  },
276
  {
277
  "path": "gguf/audio8-q4_0.gguf",
@@ -710,8 +739,8 @@
710
  },
711
  {
712
  "path": "native/src/bin/audio8-stream.rs",
713
- "bytes": 35470,
714
- "sha256": "5fbe1ca1c377d1855539c1245270ecddb2dd0f830521519e43e71585aa4d8d54"
715
  },
716
  {
717
  "path": "native/src/bin/kleidi-bench.rs",
@@ -725,8 +754,8 @@
725
  },
726
  {
727
  "path": "native/src/bin/support/silero_stream.rs",
728
- "bytes": 3966,
729
- "sha256": "6e78be61fc887c530e6bb008b9f310191023cb8a7700e299fd7c98e1f53aa320"
730
  },
731
  {
732
  "path": "native/src/bin/support/stream_common.rs",
@@ -735,8 +764,8 @@
735
  },
736
  {
737
  "path": "native/src/caption_stream.rs",
738
- "bytes": 22803,
739
- "sha256": "1b7c1231aa128d9d758352bc8926bda352b2a8f65d0294892ff8b82f4543f476"
740
  },
741
  {
742
  "path": "native/src/conditioning.rs",
@@ -780,13 +809,18 @@
780
  },
781
  {
782
  "path": "native/src/encoder_tiled_attention.rs",
783
- "bytes": 11957,
784
- "sha256": "fd3203940bc11da712db02bd98d957def495d59d5804d87c67ce461f7c3de391"
785
  },
786
  {
787
  "path": "native/src/encoder_tiled_attention_tests.rs",
788
- "bytes": 19056,
789
- "sha256": "5b046f439afa58815893037ab6700cf7470d816a4fcff1f87446225a36dbea30"
 
 
 
 
 
790
  },
791
  {
792
  "path": "native/src/encoder_x86_attention_tests.rs",
@@ -813,10 +847,15 @@
813
  "bytes": 13860,
814
  "sha256": "4207564489bb02e305cc04e03cb99759dbd1ec8a711c07aab010cc99f740376f"
815
  },
 
 
 
 
 
816
  {
817
  "path": "native/src/kv_storage.rs",
818
- "bytes": 23517,
819
- "sha256": "2ae02b5812d672303e1cbab426d1d368c75fe02207149ec1b0e9bb7296de90c7"
820
  },
821
  {
822
  "path": "native/src/lib.rs",
@@ -1060,8 +1099,8 @@
1060
  },
1061
  {
1062
  "path": "provenance/native-build.json",
1063
- "bytes": 7653,
1064
- "sha256": "5f8783ef97d7730d470c82cd74b459dd7f92c1ad6c4744dbcd1fe72a18c652a4"
1065
  },
1066
  {
1067
  "path": "provenance/native-model.json",
@@ -1070,8 +1109,8 @@
1070
  },
1071
  {
1072
  "path": "provenance/native-source-manifest.json",
1073
- "bytes": 19843,
1074
- "sha256": "e52a0d57d942261cb9cc22cbaf8280dbf46dd888aedae2d3a6ccb9abda0cdb4e"
1075
  },
1076
  {
1077
  "path": "provenance/silero-source.json",
@@ -1085,8 +1124,8 @@
1085
  },
1086
  {
1087
  "path": "run-cpu-linux-x86_64.sh",
1088
- "bytes": 1386,
1089
- "sha256": "3bdaf6e6c5a286670f1c688f9c84b4264d42f3e64d45c41f6f2ba9910a5d2a9c"
1090
  },
1091
  {
1092
  "path": "run-cuda.sh",
@@ -1150,8 +1189,8 @@
1150
  },
1151
  {
1152
  "path": "sources/native-caption-sources.tar.gz",
1153
- "bytes": 291729,
1154
- "sha256": "147842b7d73e9fa9dbb001fa68f9b8791bd15a619d68d62326f78bc6d023833f"
1155
  },
1156
  {
1157
  "path": "vad_probe/Cargo.lock",
@@ -1260,5 +1299,95 @@
1260
  "Accuracy loss remains; silence gating omissions are included in reported whole-input errors.",
1261
  "Memory target 1\u20132GB is exceeded on measured consumer routes.",
1262
  "No broad hardware/OS performance or production-readiness claim."
1263
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1264
  }
 
12
  "runtime_components": {
13
  "native": {
14
  "status": "focused_tests_passed",
15
+ "scope": "Linux x86_64, Ubuntu22.04 build, GLIBC>=2.35; improved source passed same-binary EN/ZH prefix parity. Full paced timing below used the identical source in a separately pinned host build.",
16
  "tests": {
17
+ "caption": 7,
18
  "gated": 3,
19
+ "cli": 10,
20
  "bf16_mode": 1
21
  },
22
+ "unfiltered_library_suite_run": false,
23
+ "portable_prefix_parity": true
24
  },
25
  "mlx": {
26
  "status": "full_input_diagnostic_passed",
 
35
  "AMD integrated Vulkan is slower than the input clock in this smoke.",
36
  "WorkRTF includes VAD-gated silence; it is not sustained uninterrupted-speech throughput.",
37
  "ProcessRSS excludes device-resident GPU allocation. PeakGPU memory was not sampled; buffer/payload figures are separate.",
38
+ "Known long-speech omissions and memory target misses remain; strict per-word latency and broad runtime qualification are unproven."
39
  ],
40
  "glibc_required": "2.43",
41
  "linkage_scope": "CLI resolves adjacent bridge via $ORIGIN; external GPU driver and matching system runtime libraries are required.",
 
50
  "AMD integrated Vulkan is slower than the input clock in this smoke.",
51
  "WorkRTF includes VAD-gated silence; it is not sustained uninterrupted-speech throughput.",
52
  "ProcessRSS excludes device-resident GPU allocation. PeakGPU memory was not sampled; buffer/payload figures are separate.",
53
+ "Known long-speech omissions and memory target misses remain; strict per-word latency and broad runtime qualification are unproven."
54
  ],
55
  "glibc_required": "2.43",
56
  "linkage_scope": "CLI resolves adjacent bridge via $ORIGIN; external GPU driver and matching system runtime libraries are required."
 
63
  "complete_runtime": false
64
  },
65
  "execution_profile": {
66
+ "format": "audio8-experimental-execution-v2",
67
  "status": "experimental",
68
  "production_ready": false,
69
  "primary_native_platform": "linux-x86_64",
 
104
  "cache_dtype": "bfloat16",
105
  "worker_qos": "default",
106
  "pool_driver": true,
107
+ "prefix_mode": "optional",
108
  "cpu_affinity": {
109
  "policy": "linux-physical-cores-v1",
110
  "workers": 8
111
  },
112
+ "nice": null,
113
+ "encoder_tiled_attention": true
114
  },
115
  "caption": {
116
  "format": "audio8-silero-caption-profile-v1",
 
134
  "requirements_sha256": "d5a5d709779bc64a60b06fb9f4cf18bd8e492ee4934f6b730a8bfd076f26ad68"
135
  },
136
  "bindings": {
137
+ "binary": "f10ccbdc33ed5bc73d96516403634cd5551c81a05be823af91060a178a92d2d3",
138
+ "model": "d40c393cfdb4fbd231c5fab593d844018b26f80d8a0113c9ae297b8edbee60ad",
139
+ "source_manifest": "70f257fac9ab0a96e116684623e893dad875acefff947adb04b694c9283dc0b8",
140
+ "source_archive": "fd68ec98f70ea455621adb1318b467cec36221dd9b66212f3e81cf5d92c48692"
141
  }
142
  }
143
  },
 
204
  },
205
  {
206
  "path": "README.md",
207
+ "bytes": 14538,
208
+ "sha256": "9550bfbe585313ec12d6aff5524db39b109c8377ee761913ab1cc5f270621e55"
209
  },
210
  {
211
  "path": "THIRD_PARTY_NOTICES.md",
 
259
  },
260
  {
261
  "path": "bin/linux-x86_64/audio8-stream",
262
+ "bytes": 28410544,
263
+ "sha256": "f10ccbdc33ed5bc73d96516403634cd5551c81a05be823af91060a178a92d2d3"
264
  },
265
  {
266
+ "path": "evaluation/native-cpu-is1000a-baseline-v1.json",
267
  "bytes": 5838,
268
  "sha256": "50f953d865bc9203e5f78db181ebfe8fb0576b537f9f435db6d6cf873adedee0"
269
  },
270
+ {
271
+ "path": "evaluation/native-cpu-is1000a.json",
272
+ "bytes": 3460,
273
+ "sha256": "9c17000800c34aae880867c03d5d6f1b49d185e223d0e5f0a0ad1460cab7326e"
274
+ },
275
+ {
276
+ "path": "evaluation/native-cpu-prefix-phase-summary.json",
277
+ "bytes": 3085,
278
+ "sha256": "2d5f1ea91f1dcc518297748dfd2c673b7a4c03fe92153665ac8a0740aa7e79c6"
279
+ },
280
+ {
281
+ "path": "evaluation/native-cpu-prefix-strict-verification.json",
282
+ "bytes": 1620,
283
+ "sha256": "7064c936b7c769914ed11659eba2ed1343a1df920ad4a5651df4b0ce934b054b"
284
+ },
285
+ {
286
+ "path": "evaluation/native-portable-prefix-parity.json",
287
+ "bytes": 21540,
288
+ "sha256": "5b8b9fe44c5603a52752c5a11de70961e6c74cfe5297b80c3064a0d9fc360c65"
289
+ },
290
+ {
291
+ "path": "evaluation/native-rebase-component.json",
292
+ "bytes": 4396,
293
+ "sha256": "5c207ebb8acc838707446667760eda6fe36717a7a90667904e710dacd24a8741"
294
+ },
295
  {
296
  "path": "evaluation/paired-quality.json",
297
  "bytes": 5940,
 
299
  },
300
  {
301
  "path": "execution_profile.json",
302
+ "bytes": 5483,
303
+ "sha256": "3cd780f88a4d269f61e9fbfff242569d32abffe59df70473486c5440489f1852"
304
  },
305
  {
306
  "path": "gguf/audio8-q4_0.gguf",
 
739
  },
740
  {
741
  "path": "native/src/bin/audio8-stream.rs",
742
+ "bytes": 37819,
743
+ "sha256": "019315a3a4c4f7272de0956be6677d1ec54866b320a69b9ff0614df0bbe6181f"
744
  },
745
  {
746
  "path": "native/src/bin/kleidi-bench.rs",
 
754
  },
755
  {
756
  "path": "native/src/bin/support/silero_stream.rs",
757
+ "bytes": 5782,
758
+ "sha256": "1ff226447f4899eb5799c75c8b4d48d0e2c8aa208c6778aa58b623c2273dfacb"
759
  },
760
  {
761
  "path": "native/src/bin/support/stream_common.rs",
 
764
  },
765
  {
766
  "path": "native/src/caption_stream.rs",
767
+ "bytes": 24798,
768
+ "sha256": "d2ca9ed8ecb989fcf86a7ee9f54870bc1a6e8c3b73707a3dc05714d2f2126d8b"
769
  },
770
  {
771
  "path": "native/src/conditioning.rs",
 
809
  },
810
  {
811
  "path": "native/src/encoder_tiled_attention.rs",
812
+ "bytes": 12407,
813
+ "sha256": "08956db5a69de6269ca206c2761cf91fc67e9a1e44e1d35c7037537be742fbe4"
814
  },
815
  {
816
  "path": "native/src/encoder_tiled_attention_tests.rs",
817
+ "bytes": 25008,
818
+ "sha256": "523567137fafdab39329135e273168549f98d479a2d44859b49dea4881e33a4d"
819
+ },
820
+ {
821
+ "path": "native/src/encoder_tiled_attention_x86.rs",
822
+ "bytes": 2093,
823
+ "sha256": "047afbbca2845290a4d4fa4e7e9027c646cce5039cb67aa3c0d794cc6e2d1802"
824
  },
825
  {
826
  "path": "native/src/encoder_x86_attention_tests.rs",
 
847
  "bytes": 13860,
848
  "sha256": "4207564489bb02e305cc04e03cb99759dbd1ec8a711c07aab010cc99f740376f"
849
  },
850
+ {
851
+ "path": "native/src/kv_rebase_x86.rs",
852
+ "bytes": 9347,
853
+ "sha256": "8508cc3cf6c266617948e2230513d72eaf34d8632c3c4141d67fbb27fb90b3c2"
854
+ },
855
  {
856
  "path": "native/src/kv_storage.rs",
857
+ "bytes": 24390,
858
+ "sha256": "a0e8dce85ae12f0bcb6603184e725e51d941a4206f11f09369258f1a5a409e0f"
859
  },
860
  {
861
  "path": "native/src/lib.rs",
 
1099
  },
1100
  {
1101
  "path": "provenance/native-build.json",
1102
+ "bytes": 7722,
1103
+ "sha256": "541f57f9439a6f137bb85735608f4fb4c847ab1f68b866fd3007d02940711e1c"
1104
  },
1105
  {
1106
  "path": "provenance/native-model.json",
 
1109
  },
1110
  {
1111
  "path": "provenance/native-source-manifest.json",
1112
+ "bytes": 20863,
1113
+ "sha256": "70f257fac9ab0a96e116684623e893dad875acefff947adb04b694c9283dc0b8"
1114
  },
1115
  {
1116
  "path": "provenance/silero-source.json",
 
1124
  },
1125
  {
1126
  "path": "run-cpu-linux-x86_64.sh",
1127
+ "bytes": 1606,
1128
+ "sha256": "10dedd6b81a48eeaba5fea35f12528be2f1e296eb1d3b2310f8ca224c51dd617"
1129
  },
1130
  {
1131
  "path": "run-cuda.sh",
 
1189
  },
1190
  {
1191
  "path": "sources/native-caption-sources.tar.gz",
1192
+ "bytes": 297688,
1193
+ "sha256": "fd68ec98f70ea455621adb1318b467cec36221dd9b66212f3e81cf5d92c48692"
1194
  },
1195
  {
1196
  "path": "vad_probe/Cargo.lock",
 
1299
  "Accuracy loss remains; silence gating omissions are included in reported whole-input errors.",
1300
  "Memory target 1\u20132GB is exceeded on measured consumer routes.",
1301
  "No broad hardware/OS performance or production-readiness claim."
1302
+ ],
1303
+ "cpu_update_revision": 2,
1304
+ "cpu_diagnostic": {
1305
+ "status": "full_exposed_stream_verified",
1306
+ "all_2831_ids_exact": true,
1307
+ "model_changed": false,
1308
+ "production_ready": false,
1309
+ "published_package_changed": false,
1310
+ "mature_work_seconds_including_trims": 53.360868192,
1311
+ "mature_audio_budget_seconds": 55.2,
1312
+ "mature_work_rtf_including_trims": 0.9666823947826086,
1313
+ "long_segment_model_seconds": 78.840897153,
1314
+ "long_segment_audio_seconds": 85.168,
1315
+ "peak_non_eof_receipt_backlog_seconds": 0.5178427941128803,
1316
+ "memory": {
1317
+ "os_peak_process_rss_bytes": 2434076672,
1318
+ "os_peak_memory_footprint_bytes": null,
1319
+ "footprint_available": false,
1320
+ "rss_source_unit": "KiB (1024 bytes)",
1321
+ "elapsed_seconds": 326.58,
1322
+ "user_seconds": 926.72,
1323
+ "system_seconds": 74.73,
1324
+ "scope": "Fresh native child process including loading and inference; excludes Python harness. RSS and footprint are separate measurements and must not be summed."
1325
+ },
1326
+ "word_timing": {
1327
+ "measured": true,
1328
+ "actual_arrival_paced": true,
1329
+ "timing_basis": "Independent host receipt of flushed JSONL since paced20ms producer start; all source words retained",
1330
+ "correctly_matched_units": 298,
1331
+ "ambiguous_matched_units": 8,
1332
+ "ambiguity_method": "all minimum unit-cost Levenshtein paths, without timing-based selection",
1333
+ "unambiguous_matched_units": 290,
1334
+ "unambiguous_maximum_seconds": 5.314757478116064,
1335
+ "unmatched_reference_units": 180,
1336
+ "matched_reference_fraction": 0.6234309623430963,
1337
+ "min_seconds": -2.327656292887397,
1338
+ "p50_seconds": 0.4837891599815265,
1339
+ "p95_seconds": 0.6571080310922071,
1340
+ "maximum_seconds": 5.314757478116064,
1341
+ "matched_units_above_one_second": 1,
1342
+ "all_matched_units_within_one_second": null,
1343
+ "whole_release_pass": false,
1344
+ "limitation": "Lag summaries use one deterministic text alignment and are descriptive when alternative optimal alignments exist. Only unambiguous matches can support per-word timing claims. Omissions/substitutions remain errors, never zero-latency successes. Published reference timing uncertainty and overlapping-speaker word order are not independently corrected."
1345
+ },
1346
+ "groups": {
1347
+ "early": {
1348
+ "windows": 63,
1349
+ "mean_work_seconds": 0.055957308666666664,
1350
+ "mean_phase_seconds": {
1351
+ "frontend": 0.003428708349206349,
1352
+ "encoder": 0.02292193333333333,
1353
+ "projector": 0.0003277466984126984,
1354
+ "decoder": 0.02676664477777778,
1355
+ "head": 0.0025069615555555554
1356
+ }
1357
+ },
1358
+ "middle": {
1359
+ "windows": 192,
1360
+ "mean_work_seconds": 0.06687693241666666,
1361
+ "mean_phase_seconds": {
1362
+ "frontend": 0.00370436446875,
1363
+ "encoder": 0.034558047125,
1364
+ "projector": 0.0003304233541666667,
1365
+ "decoder": 0.025908055890625,
1366
+ "head": 0.0023705438697916668
1367
+ }
1368
+ },
1369
+ "late": {
1370
+ "windows": 672,
1371
+ "mean_work_seconds": 0.07568816295684525,
1372
+ "mean_phase_seconds": {
1373
+ "frontend": 0.003339698361607143,
1374
+ "encoder": 0.04277912063541667,
1375
+ "projector": 0.0003491926056547619,
1376
+ "decoder": 0.026791862453869046,
1377
+ "head": 0.002423294998511905
1378
+ }
1379
+ },
1380
+ "trim_windows": {
1381
+ "windows": 19,
1382
+ "mean_work_seconds": 0.13869575415789473,
1383
+ "mean_phase_seconds": {
1384
+ "frontend": 0.0022852106315789473,
1385
+ "encoder": 0.1040742662631579,
1386
+ "projector": 0.00033986926315789475,
1387
+ "decoder": 0.029645222,
1388
+ "head": 0.002327442947368421
1389
+ }
1390
+ }
1391
+ }
1392
+ }
1393
  }
run-cpu-linux-x86_64.sh CHANGED
@@ -2,11 +2,16 @@
2
  # Generated from the declared experimental execution profile; no arbitrary option forwarding.
3
  set -eu
4
  fail() { printf '%s\n' "$1" >&2; exit 64; }
5
- usage() { fail 'run-cpu-linux-x86_64.sh INPUT.f32le|- en|zh'; }
6
  [ "$(uname -s)" = Linux ] && [ "$(uname -m)" = x86_64 ] || fail 'This launcher requires linux-x86_64.'
7
  ROOT=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
8
- [ "$#" -eq 2 ] || usage
9
- INPUT=$1; LANGUAGE=$2; MODE=run; PREFIX=
 
 
 
 
 
10
  case "$LANGUAGE" in en|zh) ;; *) usage ;; esac
11
  [ -n "$INPUT" ] || usage
12
  case "$INPUT" in -|/*) ;; *) INPUT="$PWD/$INPUT" ;; esac
@@ -16,7 +21,7 @@ elif [ -n "$PREFIX" ]; then
16
  [ -f "$PREFIX" ] || fail 'Prefix input file is missing.'
17
  fi
18
  case "$PREFIX" in ''|/*) ;; *) PREFIX="$PWD/$PREFIX" ;; esac
19
- set -- --activation bf16 --startup realtime --delay-ms 240 --gear 4 --workers 8 --tasks 4 --batch 1 --first-batch 1 --worker-qos default
20
  set -- "$@" --silero-vad "$ROOT/assets/silero_vad.onnx"
21
  if [ "$MODE" = export ]; then
22
  set -- "$@" --prefix-out "$PREFIX"
 
2
  # Generated from the declared experimental execution profile; no arbitrary option forwarding.
3
  set -eu
4
  fail() { printf '%s\n' "$1" >&2; exit 64; }
5
+ usage() { fail 'run-cpu-linux-x86_64.sh INPUT.f32le|- en|zh [PREFIX] | --prepare-prefix en|zh OUTPUT'; }
6
  [ "$(uname -s)" = Linux ] && [ "$(uname -m)" = x86_64 ] || fail 'This launcher requires linux-x86_64.'
7
  ROOT=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
8
+ if [ "${1-}" = --prepare-prefix ]; then
9
+ [ "$#" -eq 3 ] || usage
10
+ MODE=export; INPUT=-; LANGUAGE=$2; PREFIX=$3
11
+ else
12
+ { [ "$#" -eq 2 ] || [ "$#" -eq 3 ]; } || usage
13
+ MODE=run; INPUT=$1; LANGUAGE=$2; PREFIX=${3-}
14
+ fi
15
  case "$LANGUAGE" in en|zh) ;; *) usage ;; esac
16
  [ -n "$INPUT" ] || usage
17
  case "$INPUT" in -|/*) ;; *) INPUT="$PWD/$INPUT" ;; esac
 
21
  [ -f "$PREFIX" ] || fail 'Prefix input file is missing.'
22
  fi
23
  case "$PREFIX" in ''|/*) ;; *) PREFIX="$PWD/$PREFIX" ;; esac
24
+ set -- --activation bf16 --startup realtime --delay-ms 240 --gear 4 --workers 8 --tasks 4 --batch 1 --first-batch 1 --worker-qos default --encoder-tiled-attention
25
  set -- "$@" --silero-vad "$ROOT/assets/silero_vad.onnx"
26
  if [ "$MODE" = export ]; then
27
  set -- "$@" --prefix-out "$PREFIX"
sources/native-caption-sources.tar.gz CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:147842b7d73e9fa9dbb001fa68f9b8791bd15a619d68d62326f78bc6d023833f
3
- size 291729
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fd68ec98f70ea455621adb1318b467cec36221dd9b66212f3e81cf5d92c48692
3
+ size 297688