Automatic Speech Recognition
MLX
ONNX
GGUF
Rust
English
Chinese
audio8
streaming-asr
quantized
experimental
Instructions to use Reza2kn/Audio8-ASR-Infinite-Compressed with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use Reza2kn/Audio8-ASR-Infinite-Compressed with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] hf download Reza2kn/Audio8-ASR-Infinite-Compressed --local-dir Audio8-ASR-Infinite-Compressed
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Atomic Chat
Publish complete experimental Audio8 Q4 model and runtimes
Browse filesExperimental release; accuracy, memory and latency limits are documented.
Release manifest SHA256: eba69a195d75757f9b14446cd7f58ff1f6e9374287c23f0a653b3909245ff480
- README.md +40 -26
- SHA256SUMS +22 -15
- bin/linux-x86_64/audio8-stream +2 -2
- evaluation/native-cpu-is1000a-baseline-v1.json +146 -0
- evaluation/native-cpu-is1000a.json +76 -133
- evaluation/native-cpu-prefix-phase-summary.json +84 -0
- evaluation/native-cpu-prefix-strict-verification.json +36 -0
- evaluation/native-portable-prefix-parity.json +449 -0
- evaluation/native-rebase-component.json +171 -0
- execution_profile.json +7 -4
- native/src/bin/audio8-stream.rs +67 -10
- native/src/bin/support/silero_stream.rs +45 -4
- native/src/caption_stream.rs +52 -1
- native/src/encoder_tiled_attention.rs +15 -1
- native/src/encoder_tiled_attention_tests.rs +124 -0
- native/src/encoder_tiled_attention_x86.rs +59 -0
- native/src/kv_rebase_x86.rs +217 -0
- native/src/kv_storage.rs +37 -17
- provenance/native-build.json +36 -36
- provenance/native-source-manifest.json +142 -123
- release_manifest.json +168 -39
- run-cpu-linux-x86_64.sh +9 -4
- sources/native-caption-sources.tar.gz +2 -2
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.
|
| 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
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 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
|
|
|
|
| 90 |
```
|
| 91 |
|
| 92 |
-
Use `zh`
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|
| 161 |
"tests": {
|
| 162 |
-
"caption":
|
| 163 |
"gated": 3,
|
| 164 |
-
"cli":
|
| 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
|
| 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
|
| 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
|
| 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 |
-
|
| 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 |
-
|
| 14 |
-
50f953d865bc9203e5f78db181ebfe8fb0576b537f9f435db6d6cf873adedee0 evaluation/native-cpu-is1000a.json
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
3d01bbe38db3dbba4701e0480bc08ee578ff12a9fb63ab4c6eed380ce41058de evaluation/paired-quality.json
|
| 16 |
-
|
| 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 |
-
|
| 105 |
b78b7f0831c6b7b61c5352001c8d2900686a44a00c181d61dbb3ebf8b9f06175 native/src/bin/kleidi-bench.rs
|
| 106 |
0ab0e8cf673b3a41e207c37e82a0b41e7e93657a0f807308311b9c0fd527e906 native/src/bin/support/runtime_platform.rs
|
| 107 |
-
|
| 108 |
0f1972219a26bd6871f2f18cd0cf1279dd576638ae1782136c4792df818a10c1 native/src/bin/support/stream_common.rs
|
| 109 |
-
|
| 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 |
-
|
| 119 |
-
|
|
|
|
| 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 |
-
|
|
|
|
| 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 |
-
|
| 175 |
52c865bb02d45ab5c814c7fcae167aa8b08722c2e2701094e21d33f3c3c5b998 provenance/native-model.json
|
| 176 |
-
|
| 177 |
8b6d69400d95de97fc68b918eca6ac18a7cd30f7f38534d55c3e811c2363a19c provenance/silero-source.json
|
| 178 |
d5a5d709779bc64a60b06fb9f4cf18bd8e492ee4934f6b730a8bfd076f26ad68 requirements-mlx.txt
|
| 179 |
-
|
| 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 |
-
|
| 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 |
-
|
|
|
|
| 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:
|
| 3 |
-
size
|
|
|
|
| 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 |
-
"
|
| 3 |
-
"
|
| 4 |
-
"
|
| 5 |
-
"
|
| 6 |
-
"
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
"
|
| 20 |
-
"
|
| 21 |
-
"
|
| 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 |
-
"
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 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 |
-
"
|
| 85 |
-
"
|
| 86 |
-
"
|
| 87 |
-
"
|
| 88 |
-
"matched_units_above_one_second":
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
|
| 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 |
-
"
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 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 |
-
"
|
| 125 |
-
"
|
| 126 |
-
"
|
| 127 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 128 |
},
|
| 129 |
-
"
|
| 130 |
-
"
|
| 131 |
-
"
|
| 132 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 133 |
},
|
| 134 |
-
"
|
| 135 |
-
"
|
| 136 |
-
"
|
| 137 |
-
"
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
|
|
|
| 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-
|
| 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": "
|
| 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": "
|
| 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
|
| 179 |
-
|| result.
|
| 180 |
-
|| result.
|
| 181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
| 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(
|
| 276 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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(
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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(×[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(×[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 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
| 389 |
-
|
| 390 |
-
|
| 391 |
-
|
| 392 |
-
|
| 393 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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-
|
| 6 |
-
"source_manifest_sha256": "
|
| 7 |
-
"source_archive": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-
|
| 8 |
-
"source_archive_sha256": "
|
| 9 |
-
"source_files":
|
| 10 |
-
"build_script_sha256": "
|
| 11 |
"features": [
|
| 12 |
"parallel",
|
| 13 |
"x86-vnni",
|
|
@@ -33,9 +33,9 @@
|
|
| 33 |
],
|
| 34 |
"nice": 15,
|
| 35 |
"cargo_jobs": 1,
|
| 36 |
-
"container": "
|
| 37 |
"image": "sha256:fcb5e809113d755189f71dba0dd88f23118552d18e1c75c15435591d3057885a",
|
| 38 |
-
"container_metadata_sha256": "
|
| 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":
|
| 58 |
"commands": [
|
| 59 |
{
|
| 60 |
"argv": [
|
|
@@ -74,9 +74,9 @@
|
|
| 74 |
"warnings"
|
| 75 |
],
|
| 76 |
"returncode": 0,
|
| 77 |
-
"elapsed_seconds": 45.
|
| 78 |
-
"log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-
|
| 79 |
-
"sha256": "
|
| 80 |
},
|
| 81 |
{
|
| 82 |
"argv": [
|
|
@@ -93,9 +93,9 @@
|
|
| 93 |
"--test-threads=1"
|
| 94 |
],
|
| 95 |
"returncode": 0,
|
| 96 |
-
"elapsed_seconds": 226.
|
| 97 |
-
"log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-
|
| 98 |
-
"sha256": "
|
| 99 |
},
|
| 100 |
{
|
| 101 |
"argv": [
|
|
@@ -112,9 +112,9 @@
|
|
| 112 |
"--test-threads=1"
|
| 113 |
],
|
| 114 |
"returncode": 0,
|
| 115 |
-
"elapsed_seconds": 5.
|
| 116 |
-
"log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-
|
| 117 |
-
"sha256": "
|
| 118 |
},
|
| 119 |
{
|
| 120 |
"argv": [
|
|
@@ -131,9 +131,9 @@
|
|
| 131 |
"--test-threads=1"
|
| 132 |
],
|
| 133 |
"returncode": 0,
|
| 134 |
-
"elapsed_seconds":
|
| 135 |
-
"log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-
|
| 136 |
-
"sha256": "
|
| 137 |
},
|
| 138 |
{
|
| 139 |
"argv": [
|
|
@@ -150,9 +150,9 @@
|
|
| 150 |
"--test-threads=1"
|
| 151 |
],
|
| 152 |
"returncode": 0,
|
| 153 |
-
"elapsed_seconds":
|
| 154 |
-
"log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-
|
| 155 |
-
"sha256": "
|
| 156 |
},
|
| 157 |
{
|
| 158 |
"argv": [
|
|
@@ -167,9 +167,9 @@
|
|
| 167 |
"audio8-stream"
|
| 168 |
],
|
| 169 |
"returncode": 0,
|
| 170 |
-
"elapsed_seconds": 5.
|
| 171 |
-
"log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-
|
| 172 |
-
"sha256": "
|
| 173 |
},
|
| 174 |
{
|
| 175 |
"argv": [
|
|
@@ -184,19 +184,19 @@
|
|
| 184 |
"/task/backend_probe"
|
| 185 |
],
|
| 186 |
"returncode": 0,
|
| 187 |
-
"elapsed_seconds": 5.
|
| 188 |
-
"log": "/home/rezo/audio8-q4-recovery-20260924/native-caption-ubuntu2204-
|
| 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-
|
| 195 |
-
"sha256": "
|
| 196 |
-
"bytes":
|
| 197 |
"elf-versions_sha256": "212616211c6eeeeef1dcf64f9010e9ca3019737cfb9736a88796385d3c42e757",
|
| 198 |
-
"elf-headers_sha256": "
|
| 199 |
-
"elf-dynamic_sha256": "
|
| 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":
|
| 222 |
"bf16_backend": "avx512_bf16_q4",
|
| 223 |
"int8_backend": "avx512_vnni",
|
| 224 |
"backend_probe_source_sha256": "713aff8aad3a58c58a929ffb2027b7b9566e258a1ad6d97153e6184c16aee448",
|
| 225 |
-
"backend_probe_binary_sha256": "
|
| 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 |
-
"
|
|
|
|
| 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 |
-
"
|
|
|
|
| 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 |
-
"
|
|
|
|
| 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 |
-
"
|
|
|
|
| 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 |
-
"
|
|
|
|
| 218 |
},
|
| 219 |
{
|
| 220 |
-
"bytes": 19056,
|
| 221 |
"path": "native/src/encoder_tiled_attention_tests.rs",
|
| 222 |
-
"
|
|
|
|
| 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 |
-
"
|
|
|
|
| 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 |
-
"
|
| 571 |
-
|
| 572 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|
| 16 |
"tests": {
|
| 17 |
-
"caption":
|
| 18 |
"gated": 3,
|
| 19 |
-
"cli":
|
| 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
|
| 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
|
| 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-
|
| 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": "
|
| 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": "
|
| 136 |
-
"model": "d40c393cfdb4fbd231c5fab593d844018b26f80d8a0113c9ae297b8edbee60ad"
|
|
|
|
|
|
|
| 137 |
}
|
| 138 |
}
|
| 139 |
},
|
|
@@ -200,8 +204,8 @@
|
|
| 200 |
},
|
| 201 |
{
|
| 202 |
"path": "README.md",
|
| 203 |
-
"bytes":
|
| 204 |
-
"sha256": "
|
| 205 |
},
|
| 206 |
{
|
| 207 |
"path": "THIRD_PARTY_NOTICES.md",
|
|
@@ -255,14 +259,39 @@
|
|
| 255 |
},
|
| 256 |
{
|
| 257 |
"path": "bin/linux-x86_64/audio8-stream",
|
| 258 |
-
"bytes":
|
| 259 |
-
"sha256": "
|
| 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":
|
| 274 |
-
"sha256": "
|
| 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":
|
| 714 |
-
"sha256": "
|
| 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":
|
| 729 |
-
"sha256": "
|
| 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":
|
| 739 |
-
"sha256": "
|
| 740 |
},
|
| 741 |
{
|
| 742 |
"path": "native/src/conditioning.rs",
|
|
@@ -780,13 +809,18 @@
|
|
| 780 |
},
|
| 781 |
{
|
| 782 |
"path": "native/src/encoder_tiled_attention.rs",
|
| 783 |
-
"bytes":
|
| 784 |
-
"sha256": "
|
| 785 |
},
|
| 786 |
{
|
| 787 |
"path": "native/src/encoder_tiled_attention_tests.rs",
|
| 788 |
-
"bytes":
|
| 789 |
-
"sha256": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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":
|
| 819 |
-
"sha256": "
|
| 820 |
},
|
| 821 |
{
|
| 822 |
"path": "native/src/lib.rs",
|
|
@@ -1060,8 +1099,8 @@
|
|
| 1060 |
},
|
| 1061 |
{
|
| 1062 |
"path": "provenance/native-build.json",
|
| 1063 |
-
"bytes":
|
| 1064 |
-
"sha256": "
|
| 1065 |
},
|
| 1066 |
{
|
| 1067 |
"path": "provenance/native-model.json",
|
|
@@ -1070,8 +1109,8 @@
|
|
| 1070 |
},
|
| 1071 |
{
|
| 1072 |
"path": "provenance/native-source-manifest.json",
|
| 1073 |
-
"bytes":
|
| 1074 |
-
"sha256": "
|
| 1075 |
},
|
| 1076 |
{
|
| 1077 |
"path": "provenance/silero-source.json",
|
|
@@ -1085,8 +1124,8 @@
|
|
| 1085 |
},
|
| 1086 |
{
|
| 1087 |
"path": "run-cpu-linux-x86_64.sh",
|
| 1088 |
-
"bytes":
|
| 1089 |
-
"sha256": "
|
| 1090 |
},
|
| 1091 |
{
|
| 1092 |
"path": "run-cuda.sh",
|
|
@@ -1150,8 +1189,8 @@
|
|
| 1150 |
},
|
| 1151 |
{
|
| 1152 |
"path": "sources/native-caption-sources.tar.gz",
|
| 1153 |
-
"bytes":
|
| 1154 |
-
"sha256": "
|
| 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 |
-
[ "$
|
| 9 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:fd68ec98f70ea455621adb1318b467cec36221dd9b66212f3e81cf5d92c48692
|
| 3 |
+
size 297688
|