Lottolabs commited on
Commit
98478ce
Β·
verified Β·
1 Parent(s): e7439ca

Release s27-20261005 (verified on branch s27; previous release = tag gptq-ctx2)

Browse files
This view is limited to 50 files because it contains too many changes. Β  See raw diff
Files changed (50) hide show
  1. README.md +90 -54
  2. SHA256SUMS +0 -0
  3. checkpoint/equivalence-mtp.json +45 -36
  4. checkpoint/equivalence.json +45 -36
  5. evidence/previous-gptq-ctx2/public-download-verification.json +29 -0
  6. evidence/{public-serving-smoke-tput-2048 β†’ previous-gptq-ctx2/public-serving-smoke-tput-2048}/metrics-after.txt +0 -0
  7. evidence/{public-serving-smoke-tput-2048 β†’ previous-gptq-ctx2/public-serving-smoke-tput-2048}/metrics-before.txt +0 -0
  8. evidence/{public-serving-smoke-tput-2048 β†’ previous-gptq-ctx2/public-serving-smoke-tput-2048}/requests-2048-c1.json +0 -0
  9. evidence/{public-serving-smoke-tput-2048 β†’ previous-gptq-ctx2/public-serving-smoke-tput-2048}/summary.json +0 -0
  10. evidence/{public-serving-smoke-tput-2048 β†’ previous-gptq-ctx2/public-serving-smoke-tput-2048}/warmup-2048.json +0 -0
  11. evidence/previous-gptq-ctx2/public-serving-smoke.json +55 -0
  12. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/launch-command.txt +0 -0
  13. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/metrics-after-1.txt +0 -0
  14. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/metrics-before-1.txt +0 -0
  15. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/metrics-start.txt +0 -0
  16. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/probe-1.log +0 -0
  17. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/metrics-after.txt +0 -0
  18. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/metrics-before.txt +0 -0
  19. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/requests-128-c1.json +0 -0
  20. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/requests-2048-c1.json +0 -0
  21. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/summary.json +0 -0
  22. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/warmup-128.json +0 -0
  23. evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/warmup-2048.json +0 -0
  24. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/exact.json +0 -0
  25. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/launch-command.txt +0 -0
  26. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/lc.json +0 -0
  27. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-after-1.txt +0 -0
  28. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-after-2.txt +0 -0
  29. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-after-3.txt +0 -0
  30. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-after-4.txt +0 -0
  31. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-after-5.txt +0 -0
  32. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-before-1.txt +0 -0
  33. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-before-2.txt +0 -0
  34. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-before-3.txt +0 -0
  35. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-before-4.txt +0 -0
  36. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-before-5.txt +0 -0
  37. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-start.txt +0 -0
  38. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/probe-1.log +0 -0
  39. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/probe-2.log +0 -0
  40. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/probe-3.log +0 -0
  41. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/probe-4.log +0 -0
  42. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/probe-5.log +0 -0
  43. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/metrics-after.txt +0 -0
  44. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/metrics-before.txt +0 -0
  45. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/requests-128-c1.json +0 -0
  46. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/requests-2048-c1.json +0 -0
  47. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/summary.json +0 -0
  48. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/warmup-128.json +0 -0
  49. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/warmup-2048.json +0 -0
  50. evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp128k/metrics-after.txt +0 -0
README.md CHANGED
@@ -15,6 +15,7 @@ tags:
15
  - gptq
16
  - speculative-decoding
17
  - dflash
 
18
  - long-context
19
  - custom-runtime
20
  ---
@@ -25,60 +26,78 @@ A hardware-specific, text-only checkpoint and custom runtime derived from [Qwen/
25
 
26
  This is a community experimental release by **Lottolabs**, not an official Qwen or Tenstorrent release. It is not GGUF, AWQ, an AutoGPTQ/GPTQModel int4 checkpoint, bitsandbytes, NVFP4, or an ordinary Transformers checkpoint. `transformers.from_pretrained()` and hosted Inference Providers are not supported launch paths.
27
 
28
- ## What changed in this release (`gptq-ctx2-20261002`)
29
 
30
- - **GPTQ-quantized BFP4 weights.** The 192 matrices stored as BFP4 (MLP gate/up/down of all 64 layers) now hold weights computed by a GPTQ variant written for Tenstorrent block floating point (sequential, layer by layer, with error compensation inside the 16-value BFP4 blocks, on a balanced chat/code/instruction calibration set). The previous release rounded the same matrices to nearest. Every value is exactly representable in BFP4, so the runtime's own conversion reproduces it bit for bit. The precision map, the tensor sizes and the bytes read per token are unchanged; everything that is not a BFP4 matrix is byte-identical to the previous checkpoint.
31
- - **Runtime `ctx2`:**
32
- - native 262,144-token context (paged KV cache in BFP8 above 64K tokens);
33
- - DFlash2 block-8 speculative decoding up to 131,072 tokens, with the bundled [z-lab/Qwen3.8-27B-DFlash2](https://huggingface.co/z-lab/Qwen3.8-27B-DFlash2) drafter;
34
- - MTP-3 above 131,072 tokens.
35
- - **Launcher.** `--max-model-len` now goes up to 262,144, and `--spec auto|dflash|mtp|off` selects the decoding mode. The default is 8,192 tokens with DFlash2.
 
 
 
 
 
 
36
 
37
  ## Quality
38
 
39
- These are teacher-forced device runs on the P150. The eval set has 34 records: 14 multi-turn chats, 12 Python files and 8 instructions, with 42,129 scored positions. Chat and instruction records are scored on the assistant tokens only. The native checkpoint was evaluated as shipped. Its logits are bit-identical to those of the evaluation that applied the GPTQ weights as an override (34 of 34 records).
40
 
41
- **Against the TT all-BFP8 build** (same runtime, every matrix in BFP8): mean KL divergence, lower is better, and top-1 agreement, higher is better.
42
 
43
- | Corpus | Previous release (round-to-nearest BFP4) KL / top-1 | This release (GPTQ BFP4) KL / top-1 |
44
  |---|---:|---:|
45
  | Chat | 0.180 / 0.838 | **0.070** / **0.897** |
46
  | Code | 0.053 / 0.940 | **0.047** / **0.943** |
47
  | Instruct | 0.013 / 0.960 | **0.011** / **0.967** |
48
  | All | 0.103 / 0.899 | **0.055** / **0.925** |
49
 
50
- **Against a CPU BF16 reference** (Ξ” perplexity, top-1 agreement, KL):
51
 
52
- | Corpus | TT all-BFP8 | Previous release (round-to-nearest) | This release (GPTQ) |
53
  |---|---:|---:|---:|
54
  | Code | +0.59% / 0.952 / 0.037 | +4.94% / 0.925 / 0.091 | **+4.25%** / **0.931** / **0.086** |
55
  | Instruct | βˆ’0.45% / 0.968 / 0.010 | +0.24% / 0.957 / 0.019 | **βˆ’0.09%** / **0.960** / **0.019** |
56
 
57
- Chat is compared with the TT all-BFP8 build rather than the CPU reference: on chat, even the all-BFP8 build sits at KL 0.28 from the CPU reference, so that reference does not separate the quantizations.
 
 
 
 
 
 
 
 
 
 
 
58
 
59
  ## Speed
60
 
61
- Single P150, one sequence, greedy, 512 streamed output tokens. Decode tok/s is the median over requests and counts client-observed tokens after the first one. "Tokens/cycle" is the number of tokens emitted per verification (1 + accepted drafts). For comparison, the previous checkpoint (round-to-nearest) was measured on the same runtime on 2026-09-28.
62
 
63
- | Profile | Prompt tokens | Decode tok/s | TTFT | Tokens/cycle | Previous checkpoint, same runtime: tok/s (tokens/cycle) |
64
  |---|---:|---:|---:|---:|---:|
65
- | 8K, DFlash2 (default) | 128 | 49.1 | 0.21 s | 3.15 ΒΉ | 50.9 (3.31 ΒΉ) |
66
- | 8K, DFlash2 (default) | 2,048 | 48.1 | 1.69 s | 3.15 ΒΉ | 51.3 (3.31 ΒΉ) |
67
- | 128K, DFlash2 | 128 | 45.3 | 0.24 s | 3.09 ΒΉ | β€” |
68
- | 128K, DFlash2 | 2,048 | 49.2 | 1.67 s | 3.09 ΒΉ | 49.0 (3.21) |
69
- | 128K, DFlash2 | 65,024 | 44.6 | 70.5 s | 3.36 | 43.2 (3.28) |
70
- | 128K, DFlash2 | 130,560 | 37.9 | 179.0 s | 3.21 | 38.8 (3.31) |
71
- | 262K, MTP-3 | 128 | 38.6 | 0.22 s | 2.23 ΒΉ | β€” |
72
- | 262K, MTP-3 | 2,048 | 37.9 | 1.65 s | 2.23 ΒΉ | β€” |
73
- | 262K, MTP-3 | 65,024 | 34.9 | 70.5 s | 2.34 | 32.6 (2.19) |
74
- | 262K, MTP-3 | 261,632 | 24.5 | 510.0 s | 2.34 | 24.5 (2.33) |
75
- | Non-speculative (`--spec off`) | 128 / 2,048 | 20.2 / 20.0 | 0.21 / 1.66 s | 1 | β€” |
 
76
 
77
- ΒΉ Combined over the 128- and 2,048-token runs of that profile.
78
 
79
- The prompt is a technical essay request. The new weights change the greedy text, so the drafts are accepted at a slightly different rate. Speed follows that rate: decode is between 6% slower (8K, 2,048 tokens) and 7% faster (262K profile, 65K tokens) than with the previous checkpoint. The cost of each verification cycle is unchanged, because the bytes read per token are identical.
80
 
81
- In this release's runs, the 128K DFlash2 profile retrieved all passkeys (beginning, middle and end) at 65,400 and 130,944 prompt tokens. The 262K MTP-3 profile retrieved them at 65,400, 130,944 and 262,016 tokens. It accepted the 262,016 + 128 = 262,144-token boundary request and rejected a 262,145-token request with HTTP 400 before generation.
82
 
83
  ## Download and serve
84
 
@@ -90,8 +109,8 @@ Prerequisites:
90
  - Disk space for:
91
  - the ~22.1 GB checkpoint;
92
  - the 3.8 GB drafter;
93
- - the 5.6 GB compressed runtime archive and the loaded image;
94
- - writable tensor/device caches (~23 GB per decoding mode).
95
 
96
  ```bash
97
  curl --fail --location --output launch.py \
@@ -103,58 +122,75 @@ python3 launch.py --cache-root /large-disk/qwen27b --device-ownership-confirmed
103
  # 128K context, DFlash2
104
  python3 launch.py --cache-root /large-disk/qwen27b --max-model-len 131072 --device-ownership-confirmed
105
 
106
- # Native 262K context, MTP-3
107
  python3 launch.py --cache-root /large-disk/qwen27b --max-model-len 262144 --device-ownership-confirmed
108
 
109
- # Verified non-speculative target path
 
 
 
110
  python3 launch.py --cache-root /large-disk/qwen27b --spec off --device-ownership-confirmed
 
111
 
112
  # Download and verify only (no Docker, no device) / print the serving command
113
  python3 launch.py --cache-root /large-disk/qwen27b --download-only
114
  python3 launch.py --cache-root /large-disk/qwen27b --print-command
115
  ```
116
 
 
 
117
  The launcher is standard-library Python. Before it serves, it:
118
 
119
  1. resolves the requested revision to an immutable commit;
120
  2. downloads the native package anonymously;
121
- 3. verifies every byte against `runtime-release.json`;
122
- 4. loads the checksum-pinned `runtime-image.tar.gz` and checks the Docker image ID (`sha256:53a2ae1582b3…`).
 
 
123
 
124
  The OpenAI-compatible API (model `Qwen/Qwen3.8-27B`) binds to `127.0.0.1:8000` and serves one sequence at a time. The first start of each decoding mode converts weights into the tensor cache and takes several minutes. Keep the printed revision and pass it with `--revision` for exact replay.
125
 
126
  ## Verification
127
 
128
- - **Native reload proofs.** Two fresh proofs are bound to the manifest: [`checkpoint/equivalence.json`](checkpoint/equivalence.json) (MTP off) and [`checkpoint/equivalence-mtp.json`](checkpoint/equivalence-mtp.json) (MTP on). Each compares full-vocabulary logits on 95 teacher-forced positions. The baseline is the original BF16 checkpoint with the same GPTQ weights substituted, quantized at load; the comparison run reloads the native checkpoint. The logits are exactly equal in both modes. The manifest's `ttquant` section records the hashes of the GPTQ weight files and the regex selecting them, and the proof tool refuses a baseline that used anything else.
129
- - **HTTP behaviour, every profile.**
130
- - `/v1/completions` with the chat prompt's token IDs reproduces the chat stream.
131
- - Requests are isolated: A, B, A gives the same A, and a greedy request after a sampled one is unchanged.
132
- - Cancellation mid-decode and mid-prefill leaves the next request exact.
133
- - Image inputs are rejected.
134
- - Evidence: [`evidence/verification/`](evidence/verification/).
135
- - **Speculative vs non-speculative output.** Greedy output is deterministic and identical across the speculative profiles, but it is **not** token-identical to non-speculative decoding. Multi-row verification rounds differently from single-row (M=1) decode. This is a property of the Qwen3.8-27B runtime since the DFlash rounds, not of the GPTQ checkpoint: the previous round-to-nearest checkpoint on the same runtime shows the same difference. Measured on this release:
136
- - DFlash2 at 8K and MTP-1 at 8K produced identical texts (8/8 requests, BF16 KV).
137
- - DFlash2 at 128K and MTP-3 at 262K produced identical texts (6/6 requests, BFP8 KV).
138
- - Against the non-speculative stream of the same profile (`--spec off`), the 6 chat prompts first diverge after 3–117 tokens.
139
- - The previous checkpoint on the same runtime: its non-speculative 8K texts also differ from its DFlash2 8K texts, while its DFlash2 texts equal its earlier MTP-1 reference.
140
-
141
- The quality tables are measured on the teacher-forced path, so they are unaffected.
142
- - **Public package.** An anonymous fresh download of revision `8659ecb6` with its own `launch.py` re-hashed all 991 serving files (31.6 GB) and loaded the archive to the expected image ID ([`evidence/public-download-verification.json`](evidence/public-download-verification.json)). The downloaded package then served its default profile: a chat request returned `PUBLIC PACKAGE OK`, and two 2,048-token probes ran at 48.0 tok/s with texts identical to the pre-publication DFlash2 run ([`evidence/public-serving-smoke.json`](evidence/public-serving-smoke.json)).
143
 
144
  These checks establish native/runtime equivalence and serving behaviour. They do not certify quality against the upstream BF16 model; the quality tables above are measured, not certified. Vision inputs are not supported.
145
 
146
- ## Previous release
 
 
 
 
 
 
 
 
 
 
 
147
 
148
- The previous release was `dual-noc-mtp1-20260920`: round-to-nearest BFP4, MTP-1 runtime `lottolabs/qwen38-27b-tt-p150:dual-noc-20260920`, 8,192-token context. It stays available at revision `50becf020f24ac03d6b2b69434a3d4e2655e0865`. To replay it, download that revision's `launch.py` and pass `--revision 50becf020f24ac03d6b2b69434a3d4e2655e0865`. Its evidence is kept under [`evidence/previous-dual-noc-mtp1-20260920/`](evidence/previous-dual-noc-mtp1-20260920/). The LocalMaxxing submission (23.8 tok/s, MTP-1) was measured on that release, not on this one.
 
 
 
 
 
 
149
 
150
  ## Integrity and provenance
151
 
152
- - [`runtime-release.json`](runtime-release.json): the downloadable serving inventory, the runtime-archive checksum, the expected Docker image ID and the upstream drafter identity.
153
  - [`release-manifest.json`](release-manifest.json) and [`SHA256SUMS`](SHA256SUMS): the complete repository inventory and checksums.
154
  - [`checkpoint/native_manifest.json`](checkpoint/native_manifest.json): the per-tensor format, precision, hashes and the `ttquant` section.
155
  - [`checkpoint/provenance/`](checkpoint/provenance/): the builder, the evaluator and the BFP unpacker used for the GPTQ weights.
156
  - [`precision-summary.json`](precision-summary.json): the precision map (128 BFP4 and 113 BFP8 layer-family assignments, LM head BFP8).
157
- - [`runtime/`](runtime/): the build context of the `ctx2` image. It contains Python/JIT-kernel overlays on an immutable development parent image. It is provenance: rebuilding needs that parent image. Serving uses the checksum-pinned archive.
158
 
159
  ## License and attribution
160
 
 
15
  - gptq
16
  - speculative-decoding
17
  - dflash
18
+ - prefix-caching
19
  - long-context
20
  - custom-runtime
21
  ---
 
26
 
27
  This is a community experimental release by **Lottolabs**, not an official Qwen or Tenstorrent release. It is not GGUF, AWQ, an AutoGPTQ/GPTQModel int4 checkpoint, bitsandbytes, NVFP4, or an ordinary Transformers checkpoint. `transformers.from_pretrained()` and hosted Inference Providers are not supported launch paths.
28
 
29
+ ## What changed in this release (`s27-20261005`)
30
 
31
+ The checkpoint tensors are unchanged from the previous release (`gptq-ctx2-20261002`, GPTQ BFP4 MLP matrices; manifest sha256 `47b781ab…`). Only the reload proofs were re-recorded, once per runtime image. The runtime changed:
32
+
33
+ - **Exact prefix caching** (on by default). A prompt that extends an earlier prompt resumes at the last 2,048-token prefill chunk boundary the earlier prompt crossed, and then runs the same chunks a full prefill would run.
34
+ - **Speculative greedy output is token-identical to non-speculative output.** The verification path now rounds like single-row decode. In the previous release, speculative and non-speculative greedy texts diverged after 3–117 tokens.
35
+ - **DFlash2 at 262K.** The 262K profile now runs DFlash2 block-8 speculative decoding with a KV cache that stores K in BFP8 and V in 4-bit BFP4 after a Hadamard rotation (`bfp8_v4r`, 26,624 instead of 34,816 bytes per token). That frees the 2.15 GB the BFP8 drafter needs at 262,144 tokens. At 261,632 prompt tokens it decodes about 28% faster than MTP-3 on the same image.
36
+ - **On-device exact sampling and lossless speculative sampling.** Temperature, top-k (1–64), top-p, min-p and presence/frequency/repetition penalties run on device with a seeded Philox RNG and reproduce vLLM's sampler. Sampled requests are now speculated too: DFlash2 draws its draft by the probabilistic selector walk and MTP by sampled chains, and the target accepts or resamples them by speculative rejection sampling, so the output distribution is the target model's. In the previous release, sampled requests decoded one token per step on the host sampler.
37
+ - **Two runtime images.** `runtime-image.tar.gz` holds both, with their shared layers stored once:
38
+
39
+ | Image | ID | Used by |
40
+ |---|---|---|
41
+ | `lottolabs/qwen27b-tt-p150:ctx5-s27` | `sha256:9c8aaa786f4a586aa591a4762e613b8f68248cb99c3ad40942ad2176ce082dda` | 8K and 128K profiles (BF16 KV up to 64K, BFP8 above) |
42
+ | `lottolabs/qwen27b-tt-p150:ctx6-kv4-s27` | `sha256:da748d2298e82bd06bb44723a31616490b4e1b7d384b457f131ba4f27cf4fbe8` | 262K profile (BFP8 K, 4-bit V) |
43
 
44
  ## Quality
45
 
46
+ **Checkpoint.** These are teacher-forced device runs on the P150 (unchanged from the previous release; the tensors are identical). The eval set has 34 records: 14 multi-turn chats, 12 Python files and 8 instructions, with 42,129 scored positions. Chat and instruction records are scored on the assistant tokens only.
47
 
48
+ Against the TT all-BFP8 build (same runtime, every matrix in BFP8), mean KL divergence and top-1 agreement:
49
 
50
+ | Corpus | Round-to-nearest BFP4 (release dual-noc) KL / top-1 | GPTQ BFP4 (this checkpoint) KL / top-1 |
51
  |---|---:|---:|
52
  | Chat | 0.180 / 0.838 | **0.070** / **0.897** |
53
  | Code | 0.053 / 0.940 | **0.047** / **0.943** |
54
  | Instruct | 0.013 / 0.960 | **0.011** / **0.967** |
55
  | All | 0.103 / 0.899 | **0.055** / **0.925** |
56
 
57
+ Against a CPU BF16 reference (Ξ” perplexity, top-1 agreement, KL):
58
 
59
+ | Corpus | TT all-BFP8 | Round-to-nearest | GPTQ (this checkpoint) |
60
  |---|---:|---:|---:|
61
  | Code | +0.59% / 0.952 / 0.037 | +4.94% / 0.925 / 0.091 | **+4.25%** / **0.931** / **0.086** |
62
  | Instruct | βˆ’0.45% / 0.968 / 0.010 | +0.24% / 0.957 / 0.019 | **βˆ’0.09%** / **0.960** / **0.019** |
63
 
64
+ **The 4-bit V cache of the 262K profile.** Long-context teacher forcing of the 4-bit V cache against the BFP8 KV cache on the same runtime (ctx6-kv4, the base of the 262K image), 4,096 scored positions per record ([`evidence/s27/kv4/quality/tables.md`](evidence/s27/kv4/quality/tables.md)):
65
+
66
+ | Corpus (contexts) | Ξ”NLL Β± SE vs BFP8 KV | top-1 agreement | mean KL |
67
+ |---|---:|---:|---:|
68
+ | Book (32K, 64K, 128K) | +0.0018 Β± 0.0012 | 0.957 | 0.0074 |
69
+ | Book (262K) | +0.0042 Β± 0.0023 | 0.937 | 0.0093 |
70
+ | Code (32K–262K) | +0.0010 Β± 0.0008 | 0.981 | 0.0045 |
71
+ | Long chat (61K) | **+0.0071 Β± 0.0010** | 0.966 | 0.0062 |
72
+
73
+ Book and code stay within 2 standard errors of the BFP8 KV cache. Needle retrieval (answer-token top-1) was 100% at 32K, 128K and 262K with both caches, and GSM8K-100 (greedy, DFlash2) scored 95 with the 4-bit V cache vs 94 with BFP8 KV. **The long chat costs +0.0071 nats per token, about 0.7% perplexity.** This is a known cost of the 262K profile only; the 8K and 128K profiles do not use the 4-bit V cache.
74
+
75
+ **Sampling.** GSM8K-100 with sampling on the 8K DFlash2 profile, one 100-question run each: coding preset 95, non-thinking preset 92 ([`evidence/s27/sampling/gsm-spec/`](evidence/s27/sampling/gsm-spec/)).
76
 
77
  ## Speed
78
 
79
+ Single P150, one sequence, 512 streamed output tokens, chat prompts. Decode tok/s is the p50 over 3 requests (distinct seeds for the sampled presets) and counts client-observed tokens after the first one ([`evidence/s27/sampling/`](evidence/s27/sampling/), `sb8k`, `sb128k`, `sb262k`, `mtp262kb`, `ns8k`, `base8k`). Presets: thinking = temperature 1.0, top-p 0.95, top-k 20, presence 1.5; coding = temperature 0.6, top-p 0.95, top-k 20; non-thinking = temperature 0.7, top-p 0.8, top-k 20, presence 1.5.
80
 
81
+ | Profile | Prompt tokens | Greedy | Thinking | Coding | Non-thinking |
82
  |---|---:|---:|---:|---:|---:|
83
+ | 8K, DFlash2 (default) | 128 | 50.1 | 48.6 | 52.5 | 46.3 |
84
+ | 8K, DFlash2 (default) | 2,048 | 54.5 | 48.4 | 50.0 | 49.0 |
85
+ | 128K, DFlash2 | 128 | 49.0 | 49.0 | 50.3 | 46.7 |
86
+ | 128K, DFlash2 | 2,048 | 49.8 | 44.3 | 51.2 | 45.5 |
87
+ | 128K, DFlash2 | 32,768 | 47.2 | 43.8 | 43.2 | 42.2 |
88
+ | 262K, DFlash2 + 4-bit V | 65,024 | 44.9 | 38.5 | 42.1 | 41.8 |
89
+ | 262K, DFlash2 + 4-bit V | 261,632 | **30.2** | **28.6** | **31.4** | 29.2 |
90
+ | 262K, MTP-3 + 4-bit V (`--spec mtp`) | 65,024 | 35.5 | 32.9 | 36.5 | 33.3 |
91
+ | 262K, MTP-3 + 4-bit V (`--spec mtp`) | 261,632 | 23.7 | 23.4 | 24.6 | 23.7 |
92
+ | 8K, non-speculative (`--spec off`) | 128 / 2,048 | 20.2 / 20.0 | 20.2 / 20.0 | 20.2 / 20.1 | 20.2 / 20.0 |
93
+
94
+ Without the sampling layer (runtime ctx5, the same 8K launch otherwise), sampled requests ran on the host sampler at **14.2 tok/s** (thinking preset, 128 and 2,048 tokens) while greedy ran at 50.1 / 54.5 tok/s ([`evidence/s27/sampling/base8k/`](evidence/s27/sampling/base8k/)). A request that leaves every sampling field at its default (the checkpoint's `generation_config.json`) decoded at 52.8 / 46.9 tok/s at 128 / 2,048 tokens on the 8K profile.
95
 
96
+ In the previous release (`gptq-ctx2`), greedy decode was 49.1 / 48.1 tok/s at 128 / 2,048 tokens (8K DFlash2) and 24.5 tok/s at 261,632 tokens (262K MTP-3).
97
 
98
+ **Prefix caching**, measured on runtime ctx5, the base of the 8K/128K image ([`evidence/s27/spec-exact/ctx5-verify/`](evidence/s27/spec-exact/ctx5-verify/) `df128k/mt.json`; the caching-off times are from runtime ctx4, [`evidence/s27/prefix-cache/ctx4-verify/dfoff128k/`](evidence/s27/prefix-cache/ctx4-verify/dfoff128k/)): a second turn that extends a 32K, 64K or 127K conversation on the 128K profile started its answer in 3.0 / 3.8 / 5.3 s instead of 31.2 / 71.4 / 172.3 s without caching, and repeating that turn took 0.8 / 1.0 / 1.3 s. All texts equal the non-speculative, caching-off reference.
99
 
100
+ TTFT on a cold prompt is about 0.2 s at 128 tokens, 1.7 s at 2,048, 31 s at 32K, 71 s at 64K, 171 s at 127K and about 8 min at 258K.
101
 
102
  ## Download and serve
103
 
 
109
  - Disk space for:
110
  - the ~22.1 GB checkpoint;
111
  - the 3.8 GB drafter;
112
+ - the 5.6 GB compressed runtime archive (both images) and the loaded images;
113
+ - writable tensor/device caches (~23 GB per decoding mode and image).
114
 
115
  ```bash
116
  curl --fail --location --output launch.py \
 
122
  # 128K context, DFlash2
123
  python3 launch.py --cache-root /large-disk/qwen27b --max-model-len 131072 --device-ownership-confirmed
124
 
125
+ # Native 262K context: DFlash2 with the 4-bit V cache
126
  python3 launch.py --cache-root /large-disk/qwen27b --max-model-len 262144 --device-ownership-confirmed
127
 
128
+ # Native 262K context: MTP-3 with the 4-bit V cache
129
+ python3 launch.py --cache-root /large-disk/qwen27b --max-model-len 262144 --spec mtp --device-ownership-confirmed
130
+
131
+ # Verified non-speculative target path; prefix caching off
132
  python3 launch.py --cache-root /large-disk/qwen27b --spec off --device-ownership-confirmed
133
+ python3 launch.py --cache-root /large-disk/qwen27b --prefix-caching off --device-ownership-confirmed
134
 
135
  # Download and verify only (no Docker, no device) / print the serving command
136
  python3 launch.py --cache-root /large-disk/qwen27b --download-only
137
  python3 launch.py --cache-root /large-disk/qwen27b --print-command
138
  ```
139
 
140
+ `--max-model-len` picks the profile: up to 8,192 tokens the 8K profile, up to 131,072 the 128K profile, above that the 262K profile. `--spec auto` (the default) is DFlash2 in every profile.
141
+
142
  The launcher is standard-library Python. Before it serves, it:
143
 
144
  1. resolves the requested revision to an immutable commit;
145
  2. downloads the native package anonymously;
146
+ 3. verifies every byte against `runtime-release.json`, whose image IDs, profiles and checkpoint manifest must match the values pinned in `launch.py`;
147
+ 4. loads the checksum-pinned `runtime-image.tar.gz` and checks the Docker image ID of the profile's image.
148
+
149
+ `serve_native.py` then checks the manifest, every checkpoint file and the reload proof recorded on that image (`checkpoint/` for ctx5-s27, `proofs-262k/` for ctx6-kv4-s27, mounted over the checkpoint's proofs inside the container). The default tensor cache is `CACHE_ROOT/tensor-cache/<manifest sha256[:16]>-<image id[:12]>`, and it carries an identity file: a cache built for another checkpoint or image is refused, because the runtime's tensor cache is keyed by tensor shape only.
150
 
151
  The OpenAI-compatible API (model `Qwen/Qwen3.8-27B`) binds to `127.0.0.1:8000` and serves one sequence at a time. The first start of each decoding mode converts weights into the tensor cache and takes several minutes. Keep the printed revision and pass it with `--revision` for exact replay.
152
 
153
  ## Verification
154
 
155
+ - **Native reload proofs.** Four fresh proofs are bound to the manifest, two per image: [`checkpoint/equivalence.json`](checkpoint/equivalence.json) and [`checkpoint/equivalence-mtp.json`](checkpoint/equivalence-mtp.json) (ctx5-s27, MTP off / on), and [`proofs-262k/equivalence.json`](proofs-262k/equivalence.json) and [`proofs-262k/equivalence-mtp.json`](proofs-262k/equivalence-mtp.json) (ctx6-kv4-s27). Each compares full-vocabulary logits on 95 teacher-forced positions between the original BF16 checkpoint with the same GPTQ weights substituted (quantized at load) and the native reload, and requires them to be exactly equal. Each proof binds the hashes of its image's runtime sources, including the device sampler.
156
+ - **Greedy HTTP output equals non-speculative decoding**, 20 of 20 checks in each profile: 8K DFlash2, 128K DFlash2, 262K DFlash2 with the 4-bit V cache and 262K MTP-3 with the 4-bit V cache ([`evidence/s27/sampling/ex8k/`](evidence/s27/sampling/ex8k/exact.json), [`ex128k/`](evidence/s27/sampling/ex128k/exact.json), [`ex262k/`](evidence/s27/sampling/ex262k/exact.json), [`mtp262k/`](evidence/s27/sampling/mtp262k/exact.json)). The references are non-speculative streams of the same profile. The checks cover 6 chat prompts, completions with the chat prompt's token IDs, request isolation, a greedy request after a sampled one, cancellation mid-decode and mid-prefill, image rejection and health.
157
+ - **Sampled output has the model's distribution.** 250 samples per preset (thinking, coding, non-thinking) and prompt, with independent seeds, from DFlash2 speculative sampling and from non-speculative device sampling were compared by two-sample chi-square tests on the first four tokens and the length: smallest p-value 0.056 over 30 tests, above the Bonferroni threshold 0.0017 ([`evidence/s27/sampling/dist-dist8k-vs-ns8k.json`](evidence/s27/sampling/dist-dist8k-vs-ns8k.json)). The device sampler matches a float64 vLLM reference within 3.8e-8 in probability, and the sampled speculative cycles checked (300 per configuration) replayed bit-exactly on the host ([`kernel-tests.log`](evidence/s27/sampling/kernel-tests.log), [`host_chain.log`](evidence/s27/sampling/host_chain.log)).
158
+ - **Request parameters** (37 cases, [`param_matrix.json`](evidence/s27/sampling/ex8k/param_matrix.json)): with speculation on, upstream vLLM's speculative-decoding validation rejects `min_p`, `logit_bias` and `min_tokens` with HTTP 400; they work with `--spec off`. Requests that need logprobs, `allowed_token_ids`, `bad_words`, structured outputs or a top-k outside 1–64 are served exactly by vLLM's host sampler, one token per step.
159
+ - **Prefix caching is exact.** Model-level resume checks (extend, exact, chain, diverge) passed, and multi-turn texts with caching on equal the caching-off reference in every profile ([`evidence/s27/spec-exact/`](evidence/s27/spec-exact/), [`evidence/s27/prefix-cache/`](evidence/s27/prefix-cache/)).
160
+ - **Long context.** Measured on runtime ctx5: the 128K profile retrieved all passkeys (beginning, middle and end) at 65,400 and 130,944 prompt tokens, and the 262K MTP-3 profile at 65,400, 130,944 and 262,016 tokens; a 262,145-token request was rejected with HTTP 400 before generation. With the 4-bit V cache, needles were retrieved at 32K, 128K and 262K (see Quality).
161
+ - **The public package was verified end to end.** Revision `78e9782a` was downloaded anonymously into an empty directory with its own `launch.py --download-only` (995 files, 31.6 GB, every file re-hashed against `SHA256SUMS`, 0 disagreements). With the local image tags removed, the launcher loaded the downloaded archive and got both pinned image IDs. Served from the download with fresh tensor caches, the 8K profile matched the non-speculative reference (20 of 20 checks), decoded greedy at 50.1 / 54.5 tok/s and the thinking preset at 48.7 / 48.4 tok/s at 128 / 2,048 tokens, and reproduced seeded requests. The 262K profile started on the ctx6-kv4-s27 image with the 4-bit V cache and DFlash2 and decoded greedy / thinking requests at 2,048 tokens at 53.9 / 40.2 tok/s ([`evidence/public-download-verification.json`](evidence/public-download-verification.json), [`evidence/public-serving-smoke.json`](evidence/public-serving-smoke.json)).
 
 
 
 
 
 
 
 
162
 
163
  These checks establish native/runtime equivalence and serving behaviour. They do not certify quality against the upstream BF16 model; the quality tables above are measured, not certified. Vision inputs are not supported.
164
 
165
+ ## Limits
166
+
167
+ - One sequence at a time, one P150, text only.
168
+ - The 262K profile always uses the 4-bit V cache (+0.0071 nats per token on a long chat, see Quality). To serve 262K with MTP-3 and a BFP8 KV cache instead, use the previous release (below).
169
+ - Non-speculative decode (`--spec off`, and sampled requests that fall back to the host sampler) is slower at long context than in the previous release, because single-row decode now uses the verification numerics: +5.6 ms per token at 130,560 tokens and +10.2 ms per token at 261,632 tokens (runtime ctx5).
170
+ - With speculation on, `min_p`, `logit_bias` and `min_tokens` are rejected with HTTP 400 (upstream vLLM); serve with `--spec off` to use them.
171
+ - Prefix caching resumes only at 2,048-token chunk boundaries.
172
+ - Long prompts have a long time to first token on a cold prompt (about 3 min at 128K, 8 min at 258K).
173
+
174
+ ## Previous releases
175
+
176
+ - **`gptq-ctx2-20261002`** (same checkpoint tensors; runtime `lottolabs/qwen27b-tt-p150:ctx2`, ID `sha256:53a2ae1582b3…`; DFlash2 up to 128K, MTP-3 with BFP8 KV at 262K, host sampler, no prefix caching) is tag [`gptq-ctx2`](https://huggingface.co/Lottolabs/Qwen3.8-27B-TT-Mixed-BFP4-BFP8-P150/tree/gptq-ctx2), commit `e7439ca85e11f5fc5f8dfea3046cde21cefc1c93`. Its evidence is under [`evidence/previous-gptq-ctx2/`](evidence/previous-gptq-ctx2/). Each launcher only accepts its own pinned runtime, so fetch that revision's launcher and pass the revision:
177
 
178
+ ```bash
179
+ curl --fail --location --output launch-ctx2.py \
180
+ https://huggingface.co/Lottolabs/Qwen3.8-27B-TT-Mixed-BFP4-BFP8-P150/resolve/e7439ca85e11f5fc5f8dfea3046cde21cefc1c93/launch.py
181
+ python3 launch-ctx2.py --revision e7439ca85e11f5fc5f8dfea3046cde21cefc1c93 --cache-root /large-disk/qwen27b \
182
+ --max-model-len 262144 --device-ownership-confirmed # 262K MTP-3, BFP8 KV
183
+ ```
184
+ - **`dual-noc-mtp1-20260920`** (round-to-nearest BFP4, MTP-1, 8,192-token context) stays available at revision `50becf020f24ac03d6b2b69434a3d4e2655e0865`; its evidence is under [`evidence/previous-dual-noc-mtp1-20260920/`](evidence/previous-dual-noc-mtp1-20260920/). The LocalMaxxing submission (23.8 tok/s, MTP-1) was measured on that release.
185
 
186
  ## Integrity and provenance
187
 
188
+ - [`runtime-release.json`](runtime-release.json): the downloadable serving inventory, the runtime-archive checksum, both image IDs, the serving profiles and the upstream drafter identity.
189
  - [`release-manifest.json`](release-manifest.json) and [`SHA256SUMS`](SHA256SUMS): the complete repository inventory and checksums.
190
  - [`checkpoint/native_manifest.json`](checkpoint/native_manifest.json): the per-tensor format, precision, hashes and the `ttquant` section.
191
  - [`checkpoint/provenance/`](checkpoint/provenance/): the builder, the evaluator and the BFP unpacker used for the GPTQ weights.
192
  - [`precision-summary.json`](precision-summary.json): the precision map (128 BFP4 and 113 BFP8 layer-family assignments, LM head BFP8).
193
+ - [`runtime/`](runtime/): for each image, every runtime source file listed in its `qwen-runtime-support.json` (copied from the image and checked against those hashes, which the proofs bind), the Dockerfile of the s27 layer and the list of changed files; the sampling patches; and [`runtime/source.json`](runtime/source.json) with the build chain (ctx2 β†’ ctx4 prefix caching β†’ ctx5 exact speculation β†’ ctx6-kv4 4-bit V; s27 sampling layers on ctx5 and ctx6-kv4). It is provenance: rebuilding needs the local parent images. Serving uses the checksum-pinned archive.
194
 
195
  ## License and attribution
196
 
SHA256SUMS CHANGED
The diff for this file is too large to render. See raw diff
 
checkpoint/equivalence-mtp.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
- "baseline_metadata_sha256": "09ec02267b9ffb54158ee6a6e7e4752ec3871e1ba79fd0dc52fc4fa4ce29a5c9",
3
  "exact_logits_equal": true,
4
  "manifest_sha256": "47b781ab1550bf9c66c7d1a952a02eedafabbc2efc499dc67ff63728fc9f01da",
5
  "precision": {
@@ -392,7 +392,7 @@
392
  "restored_sha256": "171a1c3ec5c86edbe3bc4fdeb2907a181c635e3c1b537b0358292bb32910125d"
393
  }
394
  ],
395
- "restored_metadata_sha256": "752f37e6717c3a96ba0f8a25d7e57ecfd3e522cdb894ca7679d137a160b68742",
396
  "runtime_environment": {
397
  "ARCH_NAME": "blackhole",
398
  "MESH_DEVICE": "P150",
@@ -501,10 +501,13 @@
501
  "tt/attention/verify_sdpa_writer.cpp": "1420fda2b698744fd1bea850e5d174525508e40b5f1b7012d547b95a32503cb9",
502
  "tt/attention/weights.py": "18fd01c923c021b13ac5ac62cc4dbd4efd73e996fd571c13f9effe1d4dfb2e6a",
503
  "tt/common.py": "4fb0b62e54f4da4df2013bb05a4504cbf35563e6c7d7ef1073740dff328e4289",
504
- "tt/dflash.py": "3e904811d3f370f6b28d0776d1ffe863219f62d2b59a3958ff1660d5bbcbda65",
 
 
 
505
  "tt/dflash_cache.py": "4527bff02503ded90d306c0e2803766344999d6c7124273896392e3f12dd33a0",
506
  "tt/dflash_cache_kernel.cpp": "5785fa2813e38d344207ada2a9764931bc19f0f7226ea39b356823d0b1111e17",
507
- "tt/dflash_ops.py": "69f97e83dcdad00405bcd57094d76bad80313162c50e3fc8a571b90fd071486d",
508
  "tt/dflash_ops_conv.cpp": "1b8f09b1f2fcfd5c7fd5044c1cc4edf92f9439bb1b6f01537439aed31213b4ea",
509
  "tt/dflash_ops_retile.cpp": "e5f95225440d375d7ef205d6779d528842f72d68b2742f4350f20593427add08",
510
  "tt/dflash_ops_select.cpp": "a8551b6df1c3fa63364ac80fb5a1a0f1cdb27ee5d56f35697dd4c3acbfe5a428",
@@ -517,7 +520,7 @@
517
  "tt/gdn/batched_commit.py": "662f22c5e12cd6f3de738859a583d7ae58bd16ca0bf01902625d36e6e2e30bce",
518
  "tt/gdn/batched_commit_kernel.cpp": "c5c7273afc48bb78de619cbd78933106405dd305d92bab4f26073d902aac178a",
519
  "tt/gdn/config.py": "6eb29d94e32a91123237c34364ce164b2df78c4d3c3209daf3a63672435ebf9c",
520
- "tt/gdn/decode.py": "80d6466c150162736780acdeb74a22efd67a4a24038ed0c3cefa15201eadf90b",
521
  "tt/gdn/fused_chunk.py": "1f2341a9d489b265873eb217ce9707eb6d282c19d8db0fbd63ae18cbe1a344ff",
522
  "tt/gdn/fused_commit.py": "f6a39a0567a139e9bb474b42448f442081b89496aa11de60df332d90928062f3",
523
  "tt/gdn/fused_commit_kernel.cpp": "b1070a5f132d732078f363be71d5bbb3c079ab8a96726d9599fe5a958983e205",
@@ -525,7 +528,7 @@
525
  "tt/gdn/fused_verify_output.py": "9d1526651fee0fa1615f8f1ff1cb216f8157d8ebff2a223f3c4cde0b42fbec93",
526
  "tt/gdn/fused_verify_output_bulk.cpp": "bec7e9c1059f25dd418587b970ae06f6785ae85335749108e63d9bb60c2121f6",
527
  "tt/gdn/fused_verify_writer.cpp": "587b6b97749dafea21747929268a7bb6e6ff39308e08db75126d2469934d64f7",
528
- "tt/gdn/gated_deltanet.py": "c821c22a3b77b955cec2f9f4b04837ce1388793c6ddaf59aadab6a35db51f9fc",
529
  "tt/gdn/m1/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
530
  "tt/gdn/m1/fused_output.py": "bc197a97a1843575439c62a58e19b5be872f1a81ca01ead37ec919951e230e4c",
531
  "tt/gdn/m1/layout_transport.hpp": "4bcbf870232095846b0a488a262300dfaa35bf4d37179a5f23cfe2a4fbffc92d",
@@ -543,15 +546,15 @@
543
  "tt/gdn/tp.py": "72c1a2fe5d7b60b6740d42037c70ff2fe93a5e1fbaa3b5e18d629e2f4cd47de9",
544
  "tt/gdn/verify_recurrence_compute.cpp": "4b1e526f26457b27b4dd4518faa871e2ad6d817a713ada40492d0aad56e919a8",
545
  "tt/gdn/verify_recurrence_reader.cpp": "a01a4f62ed6771638312accdaa676f2f930aeae91f91c02567624c709f9af583",
546
- "tt/gdn/weights.py": "1683070641d4ce36543c88870b3e6ba765de996753ac5fe078dfb27ca372660f",
547
  "tt/generator_interface.py": "22f669c793747ca90ac9dfee9fecdbd46835097b8e90836b276df92fce54dd4b",
548
- "tt/layer.py": "8efd9877ea4584cb5a41d6aa5b1fbb924e517ae7316fe848781b51f04390f4c3",
549
  "tt/mlp.py": "f2878d396cc3d33edceb29634f34aa7a6d0d862ed99a148c7a85de861e05640f",
550
- "tt/model.py": "8c091182302e702056db147860cb0f3491aaf9ae4b113831f39faa9617c11c96",
551
  "tt/model_config.py": "7cde8ea2e52b3182c946d09814a6e29c681e16bcb96aca209703c6ea36690bba",
552
- "tt/mtp.py": "5d8817129d257dd0ef1d99aa66f55fa9507ed6bd66d1c9d56b690205b7441b6f",
553
- "tt/mtp_wide.py": "5d1a9206b810ddf338512eaecb0f85fe96c86236cfe350547ffa8f7212f56860",
554
- "tt/qwen36_vllm.py": "0a3f18185facb6ca807ab3d5ee50573fe9153be077f2e2f4b4799294faf0420e",
555
  "tt/residual_norm/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
556
  "tt/residual_norm/add_reader.cpp": "7f961e15e17d9406f27b3fe8d7b9e7e4b06a1270c5864e085ac9dfe43c050db3",
557
  "tt/residual_norm/add_writer.cpp": "341a1de54e0ca5e5070ee52ea9e95a7d3419678de166d0bdfd73f37e5f8184a4",
@@ -561,11 +564,11 @@
561
  "tt/residual_norm/norm_writer.cpp": "8d003aacbc9437b60b7f79d5489497b0a1b67d685ba273d813636c79da814655",
562
  "tt/rms_norm.py": "126f34cb9068f67ceb8adb5aef16b866e3ca0713a582c0aeeadb925199c7a983",
563
  "tt/rope.py": "baa056d37129f1fa97a444ba5f6d5f3a5cfd6c15402dcfad13d300b11f2cef26",
564
- "tt/speculative.py": "308e8be1129214ea49e28a4d737762e2279bb1821f4ea1758c2e358d6e053d00",
565
- "tt/speculative_dflash.py": "9bc337e00c7dc1466ca61fd39388b036bc84ee8bb95171c9b66a8e25616dcc50",
566
  "tt/speculative_dflash_tree.py": "71c5d60b7d4ad58e875255460de4312b6d0df89dba7fbcb1ed1ebf096dd003a1",
567
- "tt/speculative_features.py": "bff50f3ac53972f4547374a739a855bab560b6a1fc738680e9335bde2ade8109",
568
- "tt/speculative_tree.py": "31945ec87bf777af8ea4545a70da9048d8bb74872828f41d7d0c10fd0ce5fee9",
569
  "tt/speculative_tree_kernel.cpp": "b11d91647cccded6c2db8fb735642ed429474081be6c8734e2b3c5350b94bd47",
570
  "tt/tp_common.py": "fbd33f88f6f2f280ca9558b923c3a07c4b734ad220f18756512661c4940b1120",
571
  "tt/verify_accept.py": "732ff5dc98f4d3f62b1a064029460c8d91c9f53bc1a7dd30cd39cf4cd289e5ae",
@@ -581,7 +584,7 @@
581
  "tt/vision/vision_mlp.py": "6c3c092c33df7cba0483b6ab88903f29a95f2fcecc723d3884e3cbe4effcd0e5",
582
  "tt/vision/vision_model_config.py": "bf1eb6f5d47243c46c33ee2c3506f6985131a379161d71a02b7bff88bdec5a4d",
583
  "tt/weight_mapping.py": "d7ad88592fb7de07d87fa0d10f9d1bd0d4dcc92856438fffc394f90e29e650d2",
584
- "tt/weight_prefetch.py": "1a2c323d54cffeec5d67f8bb081741827a5c2589fd2ddd3f0f107fc4662099ea",
585
  "utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
586
  "utils/substate.py": "813aa26dc9053e1217425a3cacf0c63255254f9d17723f3b5ac378167cfca28c"
587
  },
@@ -665,10 +668,13 @@
665
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/attention/verify_sdpa_writer.cpp": "1420fda2b698744fd1bea850e5d174525508e40b5f1b7012d547b95a32503cb9",
666
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/attention/weights.py": "18fd01c923c021b13ac5ac62cc4dbd4efd73e996fd571c13f9effe1d4dfb2e6a",
667
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/common.py": "4fb0b62e54f4da4df2013bb05a4504cbf35563e6c7d7ef1073740dff328e4289",
668
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash.py": "3e904811d3f370f6b28d0776d1ffe863219f62d2b59a3958ff1660d5bbcbda65",
 
 
 
669
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_cache.py": "4527bff02503ded90d306c0e2803766344999d6c7124273896392e3f12dd33a0",
670
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_cache_kernel.cpp": "5785fa2813e38d344207ada2a9764931bc19f0f7226ea39b356823d0b1111e17",
671
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops.py": "69f97e83dcdad00405bcd57094d76bad80313162c50e3fc8a571b90fd071486d",
672
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_conv.cpp": "1b8f09b1f2fcfd5c7fd5044c1cc4edf92f9439bb1b6f01537439aed31213b4ea",
673
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_retile.cpp": "e5f95225440d375d7ef205d6779d528842f72d68b2742f4350f20593427add08",
674
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_select.cpp": "a8551b6df1c3fa63364ac80fb5a1a0f1cdb27ee5d56f35697dd4c3acbfe5a428",
@@ -681,7 +687,7 @@
681
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/batched_commit.py": "662f22c5e12cd6f3de738859a583d7ae58bd16ca0bf01902625d36e6e2e30bce",
682
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/batched_commit_kernel.cpp": "c5c7273afc48bb78de619cbd78933106405dd305d92bab4f26073d902aac178a",
683
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/config.py": "6eb29d94e32a91123237c34364ce164b2df78c4d3c3209daf3a63672435ebf9c",
684
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/decode.py": "80d6466c150162736780acdeb74a22efd67a4a24038ed0c3cefa15201eadf90b",
685
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_chunk.py": "1f2341a9d489b265873eb217ce9707eb6d282c19d8db0fbd63ae18cbe1a344ff",
686
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_commit.py": "f6a39a0567a139e9bb474b42448f442081b89496aa11de60df332d90928062f3",
687
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_commit_kernel.cpp": "b1070a5f132d732078f363be71d5bbb3c079ab8a96726d9599fe5a958983e205",
@@ -689,7 +695,7 @@
689
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_output.py": "9d1526651fee0fa1615f8f1ff1cb216f8157d8ebff2a223f3c4cde0b42fbec93",
690
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_output_bulk.cpp": "bec7e9c1059f25dd418587b970ae06f6785ae85335749108e63d9bb60c2121f6",
691
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_writer.cpp": "587b6b97749dafea21747929268a7bb6e6ff39308e08db75126d2469934d64f7",
692
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/gated_deltanet.py": "c821c22a3b77b955cec2f9f4b04837ce1388793c6ddaf59aadab6a35db51f9fc",
693
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
694
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/fused_output.py": "bc197a97a1843575439c62a58e19b5be872f1a81ca01ead37ec919951e230e4c",
695
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/layout_transport.hpp": "4bcbf870232095846b0a488a262300dfaa35bf4d37179a5f23cfe2a4fbffc92d",
@@ -707,15 +713,15 @@
707
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/tp.py": "72c1a2fe5d7b60b6740d42037c70ff2fe93a5e1fbaa3b5e18d629e2f4cd47de9",
708
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/verify_recurrence_compute.cpp": "4b1e526f26457b27b4dd4518faa871e2ad6d817a713ada40492d0aad56e919a8",
709
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/verify_recurrence_reader.cpp": "a01a4f62ed6771638312accdaa676f2f930aeae91f91c02567624c709f9af583",
710
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/weights.py": "1683070641d4ce36543c88870b3e6ba765de996753ac5fe078dfb27ca372660f",
711
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/generator_interface.py": "22f669c793747ca90ac9dfee9fecdbd46835097b8e90836b276df92fce54dd4b",
712
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/layer.py": "8efd9877ea4584cb5a41d6aa5b1fbb924e517ae7316fe848781b51f04390f4c3",
713
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mlp.py": "f2878d396cc3d33edceb29634f34aa7a6d0d862ed99a148c7a85de861e05640f",
714
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/model.py": "8c091182302e702056db147860cb0f3491aaf9ae4b113831f39faa9617c11c96",
715
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/model_config.py": "7cde8ea2e52b3182c946d09814a6e29c681e16bcb96aca209703c6ea36690bba",
716
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mtp.py": "5d8817129d257dd0ef1d99aa66f55fa9507ed6bd66d1c9d56b690205b7441b6f",
717
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mtp_wide.py": "5d1a9206b810ddf338512eaecb0f85fe96c86236cfe350547ffa8f7212f56860",
718
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/qwen36_vllm.py": "0a3f18185facb6ca807ab3d5ee50573fe9153be077f2e2f4b4799294faf0420e",
719
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
720
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/add_reader.cpp": "7f961e15e17d9406f27b3fe8d7b9e7e4b06a1270c5864e085ac9dfe43c050db3",
721
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/add_writer.cpp": "341a1de54e0ca5e5070ee52ea9e95a7d3419678de166d0bdfd73f37e5f8184a4",
@@ -725,11 +731,11 @@
725
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/norm_writer.cpp": "8d003aacbc9437b60b7f79d5489497b0a1b67d685ba273d813636c79da814655",
726
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/rms_norm.py": "126f34cb9068f67ceb8adb5aef16b866e3ca0713a582c0aeeadb925199c7a983",
727
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/rope.py": "baa056d37129f1fa97a444ba5f6d5f3a5cfd6c15402dcfad13d300b11f2cef26",
728
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative.py": "308e8be1129214ea49e28a4d737762e2279bb1821f4ea1758c2e358d6e053d00",
729
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_dflash.py": "9bc337e00c7dc1466ca61fd39388b036bc84ee8bb95171c9b66a8e25616dcc50",
730
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_dflash_tree.py": "71c5d60b7d4ad58e875255460de4312b6d0df89dba7fbcb1ed1ebf096dd003a1",
731
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_features.py": "bff50f3ac53972f4547374a739a855bab560b6a1fc738680e9335bde2ade8109",
732
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_tree.py": "31945ec87bf777af8ea4545a70da9048d8bb74872828f41d7d0c10fd0ce5fee9",
733
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_tree_kernel.cpp": "b11d91647cccded6c2db8fb735642ed429474081be6c8734e2b3c5350b94bd47",
734
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/tp_common.py": "fbd33f88f6f2f280ca9558b923c3a07c4b734ad220f18756512661c4940b1120",
735
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/verify_accept.py": "732ff5dc98f4d3f62b1a064029460c8d91c9f53bc1a7dd30cd39cf4cd289e5ae",
@@ -745,7 +751,7 @@
745
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/vision/vision_mlp.py": "6c3c092c33df7cba0483b6ab88903f29a95f2fcecc723d3884e3cbe4effcd0e5",
746
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/vision/vision_model_config.py": "bf1eb6f5d47243c46c33ee2c3506f6985131a379161d71a02b7bff88bdec5a4d",
747
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/weight_mapping.py": "d7ad88592fb7de07d87fa0d10f9d1bd0d4dcc92856438fffc394f90e29e650d2",
748
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/weight_prefetch.py": "1a2c323d54cffeec5d67f8bb081741827a5c2589fd2ddd3f0f107fc4662099ea",
749
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
750
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/utils/substate.py": "813aa26dc9053e1217425a3cacf0c63255254f9d17723f3b5ac378167cfca28c",
751
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/fused_decay.py": "cedf357d4912d43a6e83218e823bf0cf4b204be5045e35e6cc253b1b41f7881d",
@@ -758,7 +764,7 @@
758
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/fused_normalization_kernel.cpp": "46f913c5e433840effe5ae9f6b03a2d29b384c5e18a0c272b796611faf3409c3",
759
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_delta_rule_ops.py": "ef302db6cba11d919255e44eef4c49d493d74ab42b4622dcc268102062fe0e48",
760
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_delta_rule_seq.py": "f2cd073b5c9e70f576820c7f13ed168ae8a529976d3f00b74cdb56faf809425e",
761
- "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_gated_attention.py": "85bf64852dee6ebf98ed8f1a58667bb215382ad17063fc6379380393d44e937c",
762
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_gated_deltanet.py": "e7a1096881df7060607efa1a65194bd121f77ba72d25bbf963980498c57b3e10",
763
  "/home/container_app_user/tt-metal/models/tt_transformers/tt/generator.py": "9a31bfdff4d97a37f3e78a48dfc2f8732e85b94edb19fe6909e8ec8e3661b7f4",
764
  "/home/container_app_user/tt-metal/native_checkpoint.py": "14138c43afd112ddc64ef943e361747d66cf6d43c29cf29b16dc2ef294f38719",
@@ -784,9 +790,12 @@
784
  "/home/container_app_user/tt-metal/ttnn/cpp/ttnn/operations/transformer/gated_delta_attn/device/kernels/compute/gated_delta_attn.cpp": "47880263c4524876553f66a72c023d9aa92fd3980d293b20ca992f00897effa4",
785
  "/home/container_app_user/tt-metal/ttnn/cpp/ttnn/operations/transformer/gated_delta_attn/device/kernels/dataflow/reader_gated_delta_attn.cpp": "7e1381e6764dd5aa51fb90582a6b499a0248a5272f6edeabf17418662bc4a603",
786
  "/home/container_app_user/tt-metal/ttnn/ttnn/_ttnn.so": "72446dcea0b262582d070e63561247ada40f25dd850cf66e249769b669991333",
787
- "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/model_input.py": "c3db27c21fee018f81c2e21f2edbc0b987c89a62ff2a7913bdd9ee464ef28e1f",
788
- "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/model_runner.py": "1afbb44129a1b00ca3a21f1a00b1eff1cc4705e92cfba9e819f8152c94014726",
789
- "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/platform.py": "0e1482fe7fd02a25d14ef3e7b5c1d107d8ad1f09fea1baf39cf76f3bf3fdfb4f",
 
 
 
790
  "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/worker.py": "5c8c71bd386a34c13b992f6c57e89c10f6eac59843581750da9959b72420fb8d",
791
  "/home/container_app_user/vllm/vllm/config/speculative.py": "3529dc38addd480fd3358978ca3ddb33984c8949e1b4a54602b4d5f16423fc85",
792
  "/home/container_app_user/vllm/vllm/v1/core/sched/scheduler.py": "f2041ec2d6f148000df9d00647d578c16b7d0058191de013cce36015f1b63647",
 
1
  {
2
+ "baseline_metadata_sha256": "dc9b246cbab34a04904c657f7d7ffcff01b00d305ec0125269c2a90d48de7a4e",
3
  "exact_logits_equal": true,
4
  "manifest_sha256": "47b781ab1550bf9c66c7d1a952a02eedafabbc2efc499dc67ff63728fc9f01da",
5
  "precision": {
 
392
  "restored_sha256": "171a1c3ec5c86edbe3bc4fdeb2907a181c635e3c1b537b0358292bb32910125d"
393
  }
394
  ],
395
+ "restored_metadata_sha256": "b62417ecbed28b2edc46449ca5e1f3f380b13b33007aad7172ef0c6e46f642f3",
396
  "runtime_environment": {
397
  "ARCH_NAME": "blackhole",
398
  "MESH_DEVICE": "P150",
 
501
  "tt/attention/verify_sdpa_writer.cpp": "1420fda2b698744fd1bea850e5d174525508e40b5f1b7012d547b95a32503cb9",
502
  "tt/attention/weights.py": "18fd01c923c021b13ac5ac62cc4dbd4efd73e996fd571c13f9effe1d4dfb2e6a",
503
  "tt/common.py": "4fb0b62e54f4da4df2013bb05a4504cbf35563e6c7d7ef1073740dff328e4289",
504
+ "tt/device_sampling.py": "f5f64caf6af6b8eaf82d0194053a8eb20786747e076993ed6236bed6ec63a6c2",
505
+ "tt/device_sampling_kernel.cpp": "386e32722ef4aee866e9e318d8ff1909cbd771c776310ac17f4b06a0fd01c3cc",
506
+ "tt/device_sampling_math.hpp": "e4da1c0be20b1fe965b8ae32ac170e35c844c94e60a096e02dec758eb0a289c2",
507
+ "tt/dflash.py": "98a168c2830b0c54388cd8b9152653d3ca4985c30a29bfde673dcfab71cb553e",
508
  "tt/dflash_cache.py": "4527bff02503ded90d306c0e2803766344999d6c7124273896392e3f12dd33a0",
509
  "tt/dflash_cache_kernel.cpp": "5785fa2813e38d344207ada2a9764931bc19f0f7226ea39b356823d0b1111e17",
510
+ "tt/dflash_ops.py": "dfa7fd444764af30f048415df931d7abd656eda376c064564f97ec61e266b708",
511
  "tt/dflash_ops_conv.cpp": "1b8f09b1f2fcfd5c7fd5044c1cc4edf92f9439bb1b6f01537439aed31213b4ea",
512
  "tt/dflash_ops_retile.cpp": "e5f95225440d375d7ef205d6779d528842f72d68b2742f4350f20593427add08",
513
  "tt/dflash_ops_select.cpp": "a8551b6df1c3fa63364ac80fb5a1a0f1cdb27ee5d56f35697dd4c3acbfe5a428",
 
520
  "tt/gdn/batched_commit.py": "662f22c5e12cd6f3de738859a583d7ae58bd16ca0bf01902625d36e6e2e30bce",
521
  "tt/gdn/batched_commit_kernel.cpp": "c5c7273afc48bb78de619cbd78933106405dd305d92bab4f26073d902aac178a",
522
  "tt/gdn/config.py": "6eb29d94e32a91123237c34364ce164b2df78c4d3c3209daf3a63672435ebf9c",
523
+ "tt/gdn/decode.py": "2341f6509d6089149fa17316a813c5725f01915cb34089f543f83ec9a8202de2",
524
  "tt/gdn/fused_chunk.py": "1f2341a9d489b265873eb217ce9707eb6d282c19d8db0fbd63ae18cbe1a344ff",
525
  "tt/gdn/fused_commit.py": "f6a39a0567a139e9bb474b42448f442081b89496aa11de60df332d90928062f3",
526
  "tt/gdn/fused_commit_kernel.cpp": "b1070a5f132d732078f363be71d5bbb3c079ab8a96726d9599fe5a958983e205",
 
528
  "tt/gdn/fused_verify_output.py": "9d1526651fee0fa1615f8f1ff1cb216f8157d8ebff2a223f3c4cde0b42fbec93",
529
  "tt/gdn/fused_verify_output_bulk.cpp": "bec7e9c1059f25dd418587b970ae06f6785ae85335749108e63d9bb60c2121f6",
530
  "tt/gdn/fused_verify_writer.cpp": "587b6b97749dafea21747929268a7bb6e6ff39308e08db75126d2469934d64f7",
531
+ "tt/gdn/gated_deltanet.py": "2348e35c78703b81ad1c43faab3a5d1b869bc3dd17abafa3add51b0e5d582db9",
532
  "tt/gdn/m1/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
533
  "tt/gdn/m1/fused_output.py": "bc197a97a1843575439c62a58e19b5be872f1a81ca01ead37ec919951e230e4c",
534
  "tt/gdn/m1/layout_transport.hpp": "4bcbf870232095846b0a488a262300dfaa35bf4d37179a5f23cfe2a4fbffc92d",
 
546
  "tt/gdn/tp.py": "72c1a2fe5d7b60b6740d42037c70ff2fe93a5e1fbaa3b5e18d629e2f4cd47de9",
547
  "tt/gdn/verify_recurrence_compute.cpp": "4b1e526f26457b27b4dd4518faa871e2ad6d817a713ada40492d0aad56e919a8",
548
  "tt/gdn/verify_recurrence_reader.cpp": "a01a4f62ed6771638312accdaa676f2f930aeae91f91c02567624c709f9af583",
549
+ "tt/gdn/weights.py": "ddd42b082bc0f6cda6b8168157764151e50c25ea7842ba85dc942ff13f1bd66a",
550
  "tt/generator_interface.py": "22f669c793747ca90ac9dfee9fecdbd46835097b8e90836b276df92fce54dd4b",
551
+ "tt/layer.py": "8421bd38ff7b99c7f7577df3eea9b498162fb2f37f806ba8effb0ec29cd4fc42",
552
  "tt/mlp.py": "f2878d396cc3d33edceb29634f34aa7a6d0d862ed99a148c7a85de861e05640f",
553
+ "tt/model.py": "f57d342bae7f12c2b747ef0e2faa37ff8a629390b4175b3f6c1a34df7f6d29cd",
554
  "tt/model_config.py": "7cde8ea2e52b3182c946d09814a6e29c681e16bcb96aca209703c6ea36690bba",
555
+ "tt/mtp.py": "c42c63842b9c1cdfde514392aface3957ab82daafcdc44f6f77290b3a1f23149",
556
+ "tt/mtp_wide.py": "36030eacfcec6f4ab3059439b9ab3bf7e0c03e965a6ec941c23c88041aadc996",
557
+ "tt/qwen36_vllm.py": "db5a21510df2cf7a5e2de827dc89ca628b72e8ecd98755e84a7b48abec75bbd0",
558
  "tt/residual_norm/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
559
  "tt/residual_norm/add_reader.cpp": "7f961e15e17d9406f27b3fe8d7b9e7e4b06a1270c5864e085ac9dfe43c050db3",
560
  "tt/residual_norm/add_writer.cpp": "341a1de54e0ca5e5070ee52ea9e95a7d3419678de166d0bdfd73f37e5f8184a4",
 
564
  "tt/residual_norm/norm_writer.cpp": "8d003aacbc9437b60b7f79d5489497b0a1b67d685ba273d813636c79da814655",
565
  "tt/rms_norm.py": "126f34cb9068f67ceb8adb5aef16b866e3ca0713a582c0aeeadb925199c7a983",
566
  "tt/rope.py": "baa056d37129f1fa97a444ba5f6d5f3a5cfd6c15402dcfad13d300b11f2cef26",
567
+ "tt/speculative.py": "6af3688b994fc3cb7a35f375714f6261ec5fd32eb53b3e9cdc67aa09baee758d",
568
+ "tt/speculative_dflash.py": "bda2243e3b9d21cf2706af84b10019f0d9eba0211bfbfe342b2931d07c55d498",
569
  "tt/speculative_dflash_tree.py": "71c5d60b7d4ad58e875255460de4312b6d0df89dba7fbcb1ed1ebf096dd003a1",
570
+ "tt/speculative_features.py": "f7b2bec63d6347179667f721175194a83e2df965341bc831cfd9e654958da88f",
571
+ "tt/speculative_tree.py": "e166d5342c9ee3a4ffa8a1780dfc9095f77d199283bf4a0ecc2eaafc4e421108",
572
  "tt/speculative_tree_kernel.cpp": "b11d91647cccded6c2db8fb735642ed429474081be6c8734e2b3c5350b94bd47",
573
  "tt/tp_common.py": "fbd33f88f6f2f280ca9558b923c3a07c4b734ad220f18756512661c4940b1120",
574
  "tt/verify_accept.py": "732ff5dc98f4d3f62b1a064029460c8d91c9f53bc1a7dd30cd39cf4cd289e5ae",
 
584
  "tt/vision/vision_mlp.py": "6c3c092c33df7cba0483b6ab88903f29a95f2fcecc723d3884e3cbe4effcd0e5",
585
  "tt/vision/vision_model_config.py": "bf1eb6f5d47243c46c33ee2c3506f6985131a379161d71a02b7bff88bdec5a4d",
586
  "tt/weight_mapping.py": "d7ad88592fb7de07d87fa0d10f9d1bd0d4dcc92856438fffc394f90e29e650d2",
587
+ "tt/weight_prefetch.py": "44a36308f1255e00298fd6937e02850e60b9690c19e33cad10dda134c30051a3",
588
  "utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
589
  "utils/substate.py": "813aa26dc9053e1217425a3cacf0c63255254f9d17723f3b5ac378167cfca28c"
590
  },
 
668
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/attention/verify_sdpa_writer.cpp": "1420fda2b698744fd1bea850e5d174525508e40b5f1b7012d547b95a32503cb9",
669
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/attention/weights.py": "18fd01c923c021b13ac5ac62cc4dbd4efd73e996fd571c13f9effe1d4dfb2e6a",
670
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/common.py": "4fb0b62e54f4da4df2013bb05a4504cbf35563e6c7d7ef1073740dff328e4289",
671
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/device_sampling.py": "f5f64caf6af6b8eaf82d0194053a8eb20786747e076993ed6236bed6ec63a6c2",
672
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/device_sampling_kernel.cpp": "386e32722ef4aee866e9e318d8ff1909cbd771c776310ac17f4b06a0fd01c3cc",
673
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/device_sampling_math.hpp": "e4da1c0be20b1fe965b8ae32ac170e35c844c94e60a096e02dec758eb0a289c2",
674
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash.py": "98a168c2830b0c54388cd8b9152653d3ca4985c30a29bfde673dcfab71cb553e",
675
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_cache.py": "4527bff02503ded90d306c0e2803766344999d6c7124273896392e3f12dd33a0",
676
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_cache_kernel.cpp": "5785fa2813e38d344207ada2a9764931bc19f0f7226ea39b356823d0b1111e17",
677
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops.py": "dfa7fd444764af30f048415df931d7abd656eda376c064564f97ec61e266b708",
678
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_conv.cpp": "1b8f09b1f2fcfd5c7fd5044c1cc4edf92f9439bb1b6f01537439aed31213b4ea",
679
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_retile.cpp": "e5f95225440d375d7ef205d6779d528842f72d68b2742f4350f20593427add08",
680
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_select.cpp": "a8551b6df1c3fa63364ac80fb5a1a0f1cdb27ee5d56f35697dd4c3acbfe5a428",
 
687
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/batched_commit.py": "662f22c5e12cd6f3de738859a583d7ae58bd16ca0bf01902625d36e6e2e30bce",
688
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/batched_commit_kernel.cpp": "c5c7273afc48bb78de619cbd78933106405dd305d92bab4f26073d902aac178a",
689
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/config.py": "6eb29d94e32a91123237c34364ce164b2df78c4d3c3209daf3a63672435ebf9c",
690
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/decode.py": "2341f6509d6089149fa17316a813c5725f01915cb34089f543f83ec9a8202de2",
691
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_chunk.py": "1f2341a9d489b265873eb217ce9707eb6d282c19d8db0fbd63ae18cbe1a344ff",
692
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_commit.py": "f6a39a0567a139e9bb474b42448f442081b89496aa11de60df332d90928062f3",
693
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_commit_kernel.cpp": "b1070a5f132d732078f363be71d5bbb3c079ab8a96726d9599fe5a958983e205",
 
695
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_output.py": "9d1526651fee0fa1615f8f1ff1cb216f8157d8ebff2a223f3c4cde0b42fbec93",
696
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_output_bulk.cpp": "bec7e9c1059f25dd418587b970ae06f6785ae85335749108e63d9bb60c2121f6",
697
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_writer.cpp": "587b6b97749dafea21747929268a7bb6e6ff39308e08db75126d2469934d64f7",
698
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/gated_deltanet.py": "2348e35c78703b81ad1c43faab3a5d1b869bc3dd17abafa3add51b0e5d582db9",
699
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
700
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/fused_output.py": "bc197a97a1843575439c62a58e19b5be872f1a81ca01ead37ec919951e230e4c",
701
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/layout_transport.hpp": "4bcbf870232095846b0a488a262300dfaa35bf4d37179a5f23cfe2a4fbffc92d",
 
713
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/tp.py": "72c1a2fe5d7b60b6740d42037c70ff2fe93a5e1fbaa3b5e18d629e2f4cd47de9",
714
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/verify_recurrence_compute.cpp": "4b1e526f26457b27b4dd4518faa871e2ad6d817a713ada40492d0aad56e919a8",
715
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/verify_recurrence_reader.cpp": "a01a4f62ed6771638312accdaa676f2f930aeae91f91c02567624c709f9af583",
716
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/weights.py": "ddd42b082bc0f6cda6b8168157764151e50c25ea7842ba85dc942ff13f1bd66a",
717
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/generator_interface.py": "22f669c793747ca90ac9dfee9fecdbd46835097b8e90836b276df92fce54dd4b",
718
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/layer.py": "8421bd38ff7b99c7f7577df3eea9b498162fb2f37f806ba8effb0ec29cd4fc42",
719
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mlp.py": "f2878d396cc3d33edceb29634f34aa7a6d0d862ed99a148c7a85de861e05640f",
720
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/model.py": "f57d342bae7f12c2b747ef0e2faa37ff8a629390b4175b3f6c1a34df7f6d29cd",
721
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/model_config.py": "7cde8ea2e52b3182c946d09814a6e29c681e16bcb96aca209703c6ea36690bba",
722
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mtp.py": "c42c63842b9c1cdfde514392aface3957ab82daafcdc44f6f77290b3a1f23149",
723
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mtp_wide.py": "36030eacfcec6f4ab3059439b9ab3bf7e0c03e965a6ec941c23c88041aadc996",
724
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/qwen36_vllm.py": "db5a21510df2cf7a5e2de827dc89ca628b72e8ecd98755e84a7b48abec75bbd0",
725
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
726
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/add_reader.cpp": "7f961e15e17d9406f27b3fe8d7b9e7e4b06a1270c5864e085ac9dfe43c050db3",
727
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/add_writer.cpp": "341a1de54e0ca5e5070ee52ea9e95a7d3419678de166d0bdfd73f37e5f8184a4",
 
731
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/norm_writer.cpp": "8d003aacbc9437b60b7f79d5489497b0a1b67d685ba273d813636c79da814655",
732
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/rms_norm.py": "126f34cb9068f67ceb8adb5aef16b866e3ca0713a582c0aeeadb925199c7a983",
733
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/rope.py": "baa056d37129f1fa97a444ba5f6d5f3a5cfd6c15402dcfad13d300b11f2cef26",
734
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative.py": "6af3688b994fc3cb7a35f375714f6261ec5fd32eb53b3e9cdc67aa09baee758d",
735
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_dflash.py": "bda2243e3b9d21cf2706af84b10019f0d9eba0211bfbfe342b2931d07c55d498",
736
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_dflash_tree.py": "71c5d60b7d4ad58e875255460de4312b6d0df89dba7fbcb1ed1ebf096dd003a1",
737
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_features.py": "f7b2bec63d6347179667f721175194a83e2df965341bc831cfd9e654958da88f",
738
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_tree.py": "e166d5342c9ee3a4ffa8a1780dfc9095f77d199283bf4a0ecc2eaafc4e421108",
739
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_tree_kernel.cpp": "b11d91647cccded6c2db8fb735642ed429474081be6c8734e2b3c5350b94bd47",
740
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/tp_common.py": "fbd33f88f6f2f280ca9558b923c3a07c4b734ad220f18756512661c4940b1120",
741
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/verify_accept.py": "732ff5dc98f4d3f62b1a064029460c8d91c9f53bc1a7dd30cd39cf4cd289e5ae",
 
751
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/vision/vision_mlp.py": "6c3c092c33df7cba0483b6ab88903f29a95f2fcecc723d3884e3cbe4effcd0e5",
752
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/vision/vision_model_config.py": "bf1eb6f5d47243c46c33ee2c3506f6985131a379161d71a02b7bff88bdec5a4d",
753
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/weight_mapping.py": "d7ad88592fb7de07d87fa0d10f9d1bd0d4dcc92856438fffc394f90e29e650d2",
754
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/weight_prefetch.py": "44a36308f1255e00298fd6937e02850e60b9690c19e33cad10dda134c30051a3",
755
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
756
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/utils/substate.py": "813aa26dc9053e1217425a3cacf0c63255254f9d17723f3b5ac378167cfca28c",
757
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/fused_decay.py": "cedf357d4912d43a6e83218e823bf0cf4b204be5045e35e6cc253b1b41f7881d",
 
764
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/fused_normalization_kernel.cpp": "46f913c5e433840effe5ae9f6b03a2d29b384c5e18a0c272b796611faf3409c3",
765
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_delta_rule_ops.py": "ef302db6cba11d919255e44eef4c49d493d74ab42b4622dcc268102062fe0e48",
766
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_delta_rule_seq.py": "f2cd073b5c9e70f576820c7f13ed168ae8a529976d3f00b74cdb56faf809425e",
767
+ "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_gated_attention.py": "d3beb4a67a23d79f92a04221341be0e20d0af33abc86c20610a855cd1a733357",
768
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_gated_deltanet.py": "e7a1096881df7060607efa1a65194bd121f77ba72d25bbf963980498c57b3e10",
769
  "/home/container_app_user/tt-metal/models/tt_transformers/tt/generator.py": "9a31bfdff4d97a37f3e78a48dfc2f8732e85b94edb19fe6909e8ec8e3661b7f4",
770
  "/home/container_app_user/tt-metal/native_checkpoint.py": "14138c43afd112ddc64ef943e361747d66cf6d43c29cf29b16dc2ef294f38719",
 
790
  "/home/container_app_user/tt-metal/ttnn/cpp/ttnn/operations/transformer/gated_delta_attn/device/kernels/compute/gated_delta_attn.cpp": "47880263c4524876553f66a72c023d9aa92fd3980d293b20ca992f00897effa4",
791
  "/home/container_app_user/tt-metal/ttnn/cpp/ttnn/operations/transformer/gated_delta_attn/device/kernels/dataflow/reader_gated_delta_attn.cpp": "7e1381e6764dd5aa51fb90582a6b499a0248a5272f6edeabf17418662bc4a603",
792
  "/home/container_app_user/tt-metal/ttnn/ttnn/_ttnn.so": "72446dcea0b262582d070e63561247ada40f25dd850cf66e249769b669991333",
793
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/async_decode.py": "189005f53ed55f63d2d2da0641a3913f6867873b557cc1c1edf4b3dbf866fb8c",
794
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/model_input.py": "a055ffc3488dde9e326d22829ab51826cb7a0fc46a5906e711d8119ccf023381",
795
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/model_runner.py": "5fc099bd29e7a310c6368a4491621a87c356d2ef0322ab34355270a1305f266c",
796
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/platform.py": "7ff78e8d83131bca34229e23170e80dd6efa3f33d5ba7ba3700e526a007a3930",
797
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/prefix_resume.py": "d72059cef63cc9401e921448dca272e13e624bb17e324d240d8bc5300d0714f5",
798
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/scheduler.py": "a633623727c0bed5a89fcb48d9179323bbe2fb705ce10e7b24fa408848e1fe15",
799
  "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/worker.py": "5c8c71bd386a34c13b992f6c57e89c10f6eac59843581750da9959b72420fb8d",
800
  "/home/container_app_user/vllm/vllm/config/speculative.py": "3529dc38addd480fd3358978ca3ddb33984c8949e1b4a54602b4d5f16423fc85",
801
  "/home/container_app_user/vllm/vllm/v1/core/sched/scheduler.py": "f2041ec2d6f148000df9d00647d578c16b7d0058191de013cce36015f1b63647",
checkpoint/equivalence.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
- "baseline_metadata_sha256": "f5988c0814150ab7b05b41884b7f268e464089a8f6b0532c9bb4ae2791e6f7b2",
3
  "exact_logits_equal": true,
4
  "manifest_sha256": "47b781ab1550bf9c66c7d1a952a02eedafabbc2efc499dc67ff63728fc9f01da",
5
  "precision": {
@@ -392,7 +392,7 @@
392
  "restored_sha256": "171a1c3ec5c86edbe3bc4fdeb2907a181c635e3c1b537b0358292bb32910125d"
393
  }
394
  ],
395
- "restored_metadata_sha256": "fdba629a2c63bddb62a57584079d47c2c08a1f9bc8925c02f5a50936bc62edca",
396
  "runtime_environment": {
397
  "ARCH_NAME": "blackhole",
398
  "MESH_DEVICE": "P150",
@@ -501,10 +501,13 @@
501
  "tt/attention/verify_sdpa_writer.cpp": "1420fda2b698744fd1bea850e5d174525508e40b5f1b7012d547b95a32503cb9",
502
  "tt/attention/weights.py": "18fd01c923c021b13ac5ac62cc4dbd4efd73e996fd571c13f9effe1d4dfb2e6a",
503
  "tt/common.py": "4fb0b62e54f4da4df2013bb05a4504cbf35563e6c7d7ef1073740dff328e4289",
504
- "tt/dflash.py": "3e904811d3f370f6b28d0776d1ffe863219f62d2b59a3958ff1660d5bbcbda65",
 
 
 
505
  "tt/dflash_cache.py": "4527bff02503ded90d306c0e2803766344999d6c7124273896392e3f12dd33a0",
506
  "tt/dflash_cache_kernel.cpp": "5785fa2813e38d344207ada2a9764931bc19f0f7226ea39b356823d0b1111e17",
507
- "tt/dflash_ops.py": "69f97e83dcdad00405bcd57094d76bad80313162c50e3fc8a571b90fd071486d",
508
  "tt/dflash_ops_conv.cpp": "1b8f09b1f2fcfd5c7fd5044c1cc4edf92f9439bb1b6f01537439aed31213b4ea",
509
  "tt/dflash_ops_retile.cpp": "e5f95225440d375d7ef205d6779d528842f72d68b2742f4350f20593427add08",
510
  "tt/dflash_ops_select.cpp": "a8551b6df1c3fa63364ac80fb5a1a0f1cdb27ee5d56f35697dd4c3acbfe5a428",
@@ -517,7 +520,7 @@
517
  "tt/gdn/batched_commit.py": "662f22c5e12cd6f3de738859a583d7ae58bd16ca0bf01902625d36e6e2e30bce",
518
  "tt/gdn/batched_commit_kernel.cpp": "c5c7273afc48bb78de619cbd78933106405dd305d92bab4f26073d902aac178a",
519
  "tt/gdn/config.py": "6eb29d94e32a91123237c34364ce164b2df78c4d3c3209daf3a63672435ebf9c",
520
- "tt/gdn/decode.py": "80d6466c150162736780acdeb74a22efd67a4a24038ed0c3cefa15201eadf90b",
521
  "tt/gdn/fused_chunk.py": "1f2341a9d489b265873eb217ce9707eb6d282c19d8db0fbd63ae18cbe1a344ff",
522
  "tt/gdn/fused_commit.py": "f6a39a0567a139e9bb474b42448f442081b89496aa11de60df332d90928062f3",
523
  "tt/gdn/fused_commit_kernel.cpp": "b1070a5f132d732078f363be71d5bbb3c079ab8a96726d9599fe5a958983e205",
@@ -525,7 +528,7 @@
525
  "tt/gdn/fused_verify_output.py": "9d1526651fee0fa1615f8f1ff1cb216f8157d8ebff2a223f3c4cde0b42fbec93",
526
  "tt/gdn/fused_verify_output_bulk.cpp": "bec7e9c1059f25dd418587b970ae06f6785ae85335749108e63d9bb60c2121f6",
527
  "tt/gdn/fused_verify_writer.cpp": "587b6b97749dafea21747929268a7bb6e6ff39308e08db75126d2469934d64f7",
528
- "tt/gdn/gated_deltanet.py": "c821c22a3b77b955cec2f9f4b04837ce1388793c6ddaf59aadab6a35db51f9fc",
529
  "tt/gdn/m1/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
530
  "tt/gdn/m1/fused_output.py": "bc197a97a1843575439c62a58e19b5be872f1a81ca01ead37ec919951e230e4c",
531
  "tt/gdn/m1/layout_transport.hpp": "4bcbf870232095846b0a488a262300dfaa35bf4d37179a5f23cfe2a4fbffc92d",
@@ -543,15 +546,15 @@
543
  "tt/gdn/tp.py": "72c1a2fe5d7b60b6740d42037c70ff2fe93a5e1fbaa3b5e18d629e2f4cd47de9",
544
  "tt/gdn/verify_recurrence_compute.cpp": "4b1e526f26457b27b4dd4518faa871e2ad6d817a713ada40492d0aad56e919a8",
545
  "tt/gdn/verify_recurrence_reader.cpp": "a01a4f62ed6771638312accdaa676f2f930aeae91f91c02567624c709f9af583",
546
- "tt/gdn/weights.py": "1683070641d4ce36543c88870b3e6ba765de996753ac5fe078dfb27ca372660f",
547
  "tt/generator_interface.py": "22f669c793747ca90ac9dfee9fecdbd46835097b8e90836b276df92fce54dd4b",
548
- "tt/layer.py": "8efd9877ea4584cb5a41d6aa5b1fbb924e517ae7316fe848781b51f04390f4c3",
549
  "tt/mlp.py": "f2878d396cc3d33edceb29634f34aa7a6d0d862ed99a148c7a85de861e05640f",
550
- "tt/model.py": "8c091182302e702056db147860cb0f3491aaf9ae4b113831f39faa9617c11c96",
551
  "tt/model_config.py": "7cde8ea2e52b3182c946d09814a6e29c681e16bcb96aca209703c6ea36690bba",
552
- "tt/mtp.py": "5d8817129d257dd0ef1d99aa66f55fa9507ed6bd66d1c9d56b690205b7441b6f",
553
- "tt/mtp_wide.py": "5d1a9206b810ddf338512eaecb0f85fe96c86236cfe350547ffa8f7212f56860",
554
- "tt/qwen36_vllm.py": "0a3f18185facb6ca807ab3d5ee50573fe9153be077f2e2f4b4799294faf0420e",
555
  "tt/residual_norm/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
556
  "tt/residual_norm/add_reader.cpp": "7f961e15e17d9406f27b3fe8d7b9e7e4b06a1270c5864e085ac9dfe43c050db3",
557
  "tt/residual_norm/add_writer.cpp": "341a1de54e0ca5e5070ee52ea9e95a7d3419678de166d0bdfd73f37e5f8184a4",
@@ -561,11 +564,11 @@
561
  "tt/residual_norm/norm_writer.cpp": "8d003aacbc9437b60b7f79d5489497b0a1b67d685ba273d813636c79da814655",
562
  "tt/rms_norm.py": "126f34cb9068f67ceb8adb5aef16b866e3ca0713a582c0aeeadb925199c7a983",
563
  "tt/rope.py": "baa056d37129f1fa97a444ba5f6d5f3a5cfd6c15402dcfad13d300b11f2cef26",
564
- "tt/speculative.py": "308e8be1129214ea49e28a4d737762e2279bb1821f4ea1758c2e358d6e053d00",
565
- "tt/speculative_dflash.py": "9bc337e00c7dc1466ca61fd39388b036bc84ee8bb95171c9b66a8e25616dcc50",
566
  "tt/speculative_dflash_tree.py": "71c5d60b7d4ad58e875255460de4312b6d0df89dba7fbcb1ed1ebf096dd003a1",
567
- "tt/speculative_features.py": "bff50f3ac53972f4547374a739a855bab560b6a1fc738680e9335bde2ade8109",
568
- "tt/speculative_tree.py": "31945ec87bf777af8ea4545a70da9048d8bb74872828f41d7d0c10fd0ce5fee9",
569
  "tt/speculative_tree_kernel.cpp": "b11d91647cccded6c2db8fb735642ed429474081be6c8734e2b3c5350b94bd47",
570
  "tt/tp_common.py": "fbd33f88f6f2f280ca9558b923c3a07c4b734ad220f18756512661c4940b1120",
571
  "tt/verify_accept.py": "732ff5dc98f4d3f62b1a064029460c8d91c9f53bc1a7dd30cd39cf4cd289e5ae",
@@ -581,7 +584,7 @@
581
  "tt/vision/vision_mlp.py": "6c3c092c33df7cba0483b6ab88903f29a95f2fcecc723d3884e3cbe4effcd0e5",
582
  "tt/vision/vision_model_config.py": "bf1eb6f5d47243c46c33ee2c3506f6985131a379161d71a02b7bff88bdec5a4d",
583
  "tt/weight_mapping.py": "d7ad88592fb7de07d87fa0d10f9d1bd0d4dcc92856438fffc394f90e29e650d2",
584
- "tt/weight_prefetch.py": "1a2c323d54cffeec5d67f8bb081741827a5c2589fd2ddd3f0f107fc4662099ea",
585
  "utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
586
  "utils/substate.py": "813aa26dc9053e1217425a3cacf0c63255254f9d17723f3b5ac378167cfca28c"
587
  },
@@ -665,10 +668,13 @@
665
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/attention/verify_sdpa_writer.cpp": "1420fda2b698744fd1bea850e5d174525508e40b5f1b7012d547b95a32503cb9",
666
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/attention/weights.py": "18fd01c923c021b13ac5ac62cc4dbd4efd73e996fd571c13f9effe1d4dfb2e6a",
667
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/common.py": "4fb0b62e54f4da4df2013bb05a4504cbf35563e6c7d7ef1073740dff328e4289",
668
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash.py": "3e904811d3f370f6b28d0776d1ffe863219f62d2b59a3958ff1660d5bbcbda65",
 
 
 
669
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_cache.py": "4527bff02503ded90d306c0e2803766344999d6c7124273896392e3f12dd33a0",
670
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_cache_kernel.cpp": "5785fa2813e38d344207ada2a9764931bc19f0f7226ea39b356823d0b1111e17",
671
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops.py": "69f97e83dcdad00405bcd57094d76bad80313162c50e3fc8a571b90fd071486d",
672
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_conv.cpp": "1b8f09b1f2fcfd5c7fd5044c1cc4edf92f9439bb1b6f01537439aed31213b4ea",
673
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_retile.cpp": "e5f95225440d375d7ef205d6779d528842f72d68b2742f4350f20593427add08",
674
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_select.cpp": "a8551b6df1c3fa63364ac80fb5a1a0f1cdb27ee5d56f35697dd4c3acbfe5a428",
@@ -681,7 +687,7 @@
681
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/batched_commit.py": "662f22c5e12cd6f3de738859a583d7ae58bd16ca0bf01902625d36e6e2e30bce",
682
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/batched_commit_kernel.cpp": "c5c7273afc48bb78de619cbd78933106405dd305d92bab4f26073d902aac178a",
683
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/config.py": "6eb29d94e32a91123237c34364ce164b2df78c4d3c3209daf3a63672435ebf9c",
684
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/decode.py": "80d6466c150162736780acdeb74a22efd67a4a24038ed0c3cefa15201eadf90b",
685
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_chunk.py": "1f2341a9d489b265873eb217ce9707eb6d282c19d8db0fbd63ae18cbe1a344ff",
686
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_commit.py": "f6a39a0567a139e9bb474b42448f442081b89496aa11de60df332d90928062f3",
687
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_commit_kernel.cpp": "b1070a5f132d732078f363be71d5bbb3c079ab8a96726d9599fe5a958983e205",
@@ -689,7 +695,7 @@
689
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_output.py": "9d1526651fee0fa1615f8f1ff1cb216f8157d8ebff2a223f3c4cde0b42fbec93",
690
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_output_bulk.cpp": "bec7e9c1059f25dd418587b970ae06f6785ae85335749108e63d9bb60c2121f6",
691
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_writer.cpp": "587b6b97749dafea21747929268a7bb6e6ff39308e08db75126d2469934d64f7",
692
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/gated_deltanet.py": "c821c22a3b77b955cec2f9f4b04837ce1388793c6ddaf59aadab6a35db51f9fc",
693
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
694
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/fused_output.py": "bc197a97a1843575439c62a58e19b5be872f1a81ca01ead37ec919951e230e4c",
695
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/layout_transport.hpp": "4bcbf870232095846b0a488a262300dfaa35bf4d37179a5f23cfe2a4fbffc92d",
@@ -707,15 +713,15 @@
707
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/tp.py": "72c1a2fe5d7b60b6740d42037c70ff2fe93a5e1fbaa3b5e18d629e2f4cd47de9",
708
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/verify_recurrence_compute.cpp": "4b1e526f26457b27b4dd4518faa871e2ad6d817a713ada40492d0aad56e919a8",
709
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/verify_recurrence_reader.cpp": "a01a4f62ed6771638312accdaa676f2f930aeae91f91c02567624c709f9af583",
710
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/weights.py": "1683070641d4ce36543c88870b3e6ba765de996753ac5fe078dfb27ca372660f",
711
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/generator_interface.py": "22f669c793747ca90ac9dfee9fecdbd46835097b8e90836b276df92fce54dd4b",
712
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/layer.py": "8efd9877ea4584cb5a41d6aa5b1fbb924e517ae7316fe848781b51f04390f4c3",
713
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mlp.py": "f2878d396cc3d33edceb29634f34aa7a6d0d862ed99a148c7a85de861e05640f",
714
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/model.py": "8c091182302e702056db147860cb0f3491aaf9ae4b113831f39faa9617c11c96",
715
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/model_config.py": "7cde8ea2e52b3182c946d09814a6e29c681e16bcb96aca209703c6ea36690bba",
716
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mtp.py": "5d8817129d257dd0ef1d99aa66f55fa9507ed6bd66d1c9d56b690205b7441b6f",
717
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mtp_wide.py": "5d1a9206b810ddf338512eaecb0f85fe96c86236cfe350547ffa8f7212f56860",
718
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/qwen36_vllm.py": "0a3f18185facb6ca807ab3d5ee50573fe9153be077f2e2f4b4799294faf0420e",
719
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
720
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/add_reader.cpp": "7f961e15e17d9406f27b3fe8d7b9e7e4b06a1270c5864e085ac9dfe43c050db3",
721
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/add_writer.cpp": "341a1de54e0ca5e5070ee52ea9e95a7d3419678de166d0bdfd73f37e5f8184a4",
@@ -725,11 +731,11 @@
725
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/norm_writer.cpp": "8d003aacbc9437b60b7f79d5489497b0a1b67d685ba273d813636c79da814655",
726
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/rms_norm.py": "126f34cb9068f67ceb8adb5aef16b866e3ca0713a582c0aeeadb925199c7a983",
727
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/rope.py": "baa056d37129f1fa97a444ba5f6d5f3a5cfd6c15402dcfad13d300b11f2cef26",
728
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative.py": "308e8be1129214ea49e28a4d737762e2279bb1821f4ea1758c2e358d6e053d00",
729
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_dflash.py": "9bc337e00c7dc1466ca61fd39388b036bc84ee8bb95171c9b66a8e25616dcc50",
730
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_dflash_tree.py": "71c5d60b7d4ad58e875255460de4312b6d0df89dba7fbcb1ed1ebf096dd003a1",
731
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_features.py": "bff50f3ac53972f4547374a739a855bab560b6a1fc738680e9335bde2ade8109",
732
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_tree.py": "31945ec87bf777af8ea4545a70da9048d8bb74872828f41d7d0c10fd0ce5fee9",
733
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_tree_kernel.cpp": "b11d91647cccded6c2db8fb735642ed429474081be6c8734e2b3c5350b94bd47",
734
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/tp_common.py": "fbd33f88f6f2f280ca9558b923c3a07c4b734ad220f18756512661c4940b1120",
735
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/verify_accept.py": "732ff5dc98f4d3f62b1a064029460c8d91c9f53bc1a7dd30cd39cf4cd289e5ae",
@@ -745,7 +751,7 @@
745
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/vision/vision_mlp.py": "6c3c092c33df7cba0483b6ab88903f29a95f2fcecc723d3884e3cbe4effcd0e5",
746
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/vision/vision_model_config.py": "bf1eb6f5d47243c46c33ee2c3506f6985131a379161d71a02b7bff88bdec5a4d",
747
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/weight_mapping.py": "d7ad88592fb7de07d87fa0d10f9d1bd0d4dcc92856438fffc394f90e29e650d2",
748
- "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/weight_prefetch.py": "1a2c323d54cffeec5d67f8bb081741827a5c2589fd2ddd3f0f107fc4662099ea",
749
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
750
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/utils/substate.py": "813aa26dc9053e1217425a3cacf0c63255254f9d17723f3b5ac378167cfca28c",
751
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/fused_decay.py": "cedf357d4912d43a6e83218e823bf0cf4b204be5045e35e6cc253b1b41f7881d",
@@ -758,7 +764,7 @@
758
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/fused_normalization_kernel.cpp": "46f913c5e433840effe5ae9f6b03a2d29b384c5e18a0c272b796611faf3409c3",
759
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_delta_rule_ops.py": "ef302db6cba11d919255e44eef4c49d493d74ab42b4622dcc268102062fe0e48",
760
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_delta_rule_seq.py": "f2cd073b5c9e70f576820c7f13ed168ae8a529976d3f00b74cdb56faf809425e",
761
- "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_gated_attention.py": "85bf64852dee6ebf98ed8f1a58667bb215382ad17063fc6379380393d44e937c",
762
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_gated_deltanet.py": "e7a1096881df7060607efa1a65194bd121f77ba72d25bbf963980498c57b3e10",
763
  "/home/container_app_user/tt-metal/models/tt_transformers/tt/generator.py": "9a31bfdff4d97a37f3e78a48dfc2f8732e85b94edb19fe6909e8ec8e3661b7f4",
764
  "/home/container_app_user/tt-metal/native_checkpoint.py": "14138c43afd112ddc64ef943e361747d66cf6d43c29cf29b16dc2ef294f38719",
@@ -784,9 +790,12 @@
784
  "/home/container_app_user/tt-metal/ttnn/cpp/ttnn/operations/transformer/gated_delta_attn/device/kernels/compute/gated_delta_attn.cpp": "47880263c4524876553f66a72c023d9aa92fd3980d293b20ca992f00897effa4",
785
  "/home/container_app_user/tt-metal/ttnn/cpp/ttnn/operations/transformer/gated_delta_attn/device/kernels/dataflow/reader_gated_delta_attn.cpp": "7e1381e6764dd5aa51fb90582a6b499a0248a5272f6edeabf17418662bc4a603",
786
  "/home/container_app_user/tt-metal/ttnn/ttnn/_ttnn.so": "72446dcea0b262582d070e63561247ada40f25dd850cf66e249769b669991333",
787
- "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/model_input.py": "c3db27c21fee018f81c2e21f2edbc0b987c89a62ff2a7913bdd9ee464ef28e1f",
788
- "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/model_runner.py": "1afbb44129a1b00ca3a21f1a00b1eff1cc4705e92cfba9e819f8152c94014726",
789
- "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/platform.py": "0e1482fe7fd02a25d14ef3e7b5c1d107d8ad1f09fea1baf39cf76f3bf3fdfb4f",
 
 
 
790
  "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/worker.py": "5c8c71bd386a34c13b992f6c57e89c10f6eac59843581750da9959b72420fb8d",
791
  "/home/container_app_user/vllm/vllm/config/speculative.py": "3529dc38addd480fd3358978ca3ddb33984c8949e1b4a54602b4d5f16423fc85",
792
  "/home/container_app_user/vllm/vllm/v1/core/sched/scheduler.py": "f2041ec2d6f148000df9d00647d578c16b7d0058191de013cce36015f1b63647",
 
1
  {
2
+ "baseline_metadata_sha256": "c32e1f37f9809a5bcf7b46d8ddeac86c0f04d525d993d3668e3636af9b859226",
3
  "exact_logits_equal": true,
4
  "manifest_sha256": "47b781ab1550bf9c66c7d1a952a02eedafabbc2efc499dc67ff63728fc9f01da",
5
  "precision": {
 
392
  "restored_sha256": "171a1c3ec5c86edbe3bc4fdeb2907a181c635e3c1b537b0358292bb32910125d"
393
  }
394
  ],
395
+ "restored_metadata_sha256": "c730debc581a033d15e273c8132ce5edcbc73e8c139a0fa0202c54aef881a755",
396
  "runtime_environment": {
397
  "ARCH_NAME": "blackhole",
398
  "MESH_DEVICE": "P150",
 
501
  "tt/attention/verify_sdpa_writer.cpp": "1420fda2b698744fd1bea850e5d174525508e40b5f1b7012d547b95a32503cb9",
502
  "tt/attention/weights.py": "18fd01c923c021b13ac5ac62cc4dbd4efd73e996fd571c13f9effe1d4dfb2e6a",
503
  "tt/common.py": "4fb0b62e54f4da4df2013bb05a4504cbf35563e6c7d7ef1073740dff328e4289",
504
+ "tt/device_sampling.py": "f5f64caf6af6b8eaf82d0194053a8eb20786747e076993ed6236bed6ec63a6c2",
505
+ "tt/device_sampling_kernel.cpp": "386e32722ef4aee866e9e318d8ff1909cbd771c776310ac17f4b06a0fd01c3cc",
506
+ "tt/device_sampling_math.hpp": "e4da1c0be20b1fe965b8ae32ac170e35c844c94e60a096e02dec758eb0a289c2",
507
+ "tt/dflash.py": "98a168c2830b0c54388cd8b9152653d3ca4985c30a29bfde673dcfab71cb553e",
508
  "tt/dflash_cache.py": "4527bff02503ded90d306c0e2803766344999d6c7124273896392e3f12dd33a0",
509
  "tt/dflash_cache_kernel.cpp": "5785fa2813e38d344207ada2a9764931bc19f0f7226ea39b356823d0b1111e17",
510
+ "tt/dflash_ops.py": "dfa7fd444764af30f048415df931d7abd656eda376c064564f97ec61e266b708",
511
  "tt/dflash_ops_conv.cpp": "1b8f09b1f2fcfd5c7fd5044c1cc4edf92f9439bb1b6f01537439aed31213b4ea",
512
  "tt/dflash_ops_retile.cpp": "e5f95225440d375d7ef205d6779d528842f72d68b2742f4350f20593427add08",
513
  "tt/dflash_ops_select.cpp": "a8551b6df1c3fa63364ac80fb5a1a0f1cdb27ee5d56f35697dd4c3acbfe5a428",
 
520
  "tt/gdn/batched_commit.py": "662f22c5e12cd6f3de738859a583d7ae58bd16ca0bf01902625d36e6e2e30bce",
521
  "tt/gdn/batched_commit_kernel.cpp": "c5c7273afc48bb78de619cbd78933106405dd305d92bab4f26073d902aac178a",
522
  "tt/gdn/config.py": "6eb29d94e32a91123237c34364ce164b2df78c4d3c3209daf3a63672435ebf9c",
523
+ "tt/gdn/decode.py": "2341f6509d6089149fa17316a813c5725f01915cb34089f543f83ec9a8202de2",
524
  "tt/gdn/fused_chunk.py": "1f2341a9d489b265873eb217ce9707eb6d282c19d8db0fbd63ae18cbe1a344ff",
525
  "tt/gdn/fused_commit.py": "f6a39a0567a139e9bb474b42448f442081b89496aa11de60df332d90928062f3",
526
  "tt/gdn/fused_commit_kernel.cpp": "b1070a5f132d732078f363be71d5bbb3c079ab8a96726d9599fe5a958983e205",
 
528
  "tt/gdn/fused_verify_output.py": "9d1526651fee0fa1615f8f1ff1cb216f8157d8ebff2a223f3c4cde0b42fbec93",
529
  "tt/gdn/fused_verify_output_bulk.cpp": "bec7e9c1059f25dd418587b970ae06f6785ae85335749108e63d9bb60c2121f6",
530
  "tt/gdn/fused_verify_writer.cpp": "587b6b97749dafea21747929268a7bb6e6ff39308e08db75126d2469934d64f7",
531
+ "tt/gdn/gated_deltanet.py": "2348e35c78703b81ad1c43faab3a5d1b869bc3dd17abafa3add51b0e5d582db9",
532
  "tt/gdn/m1/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
533
  "tt/gdn/m1/fused_output.py": "bc197a97a1843575439c62a58e19b5be872f1a81ca01ead37ec919951e230e4c",
534
  "tt/gdn/m1/layout_transport.hpp": "4bcbf870232095846b0a488a262300dfaa35bf4d37179a5f23cfe2a4fbffc92d",
 
546
  "tt/gdn/tp.py": "72c1a2fe5d7b60b6740d42037c70ff2fe93a5e1fbaa3b5e18d629e2f4cd47de9",
547
  "tt/gdn/verify_recurrence_compute.cpp": "4b1e526f26457b27b4dd4518faa871e2ad6d817a713ada40492d0aad56e919a8",
548
  "tt/gdn/verify_recurrence_reader.cpp": "a01a4f62ed6771638312accdaa676f2f930aeae91f91c02567624c709f9af583",
549
+ "tt/gdn/weights.py": "ddd42b082bc0f6cda6b8168157764151e50c25ea7842ba85dc942ff13f1bd66a",
550
  "tt/generator_interface.py": "22f669c793747ca90ac9dfee9fecdbd46835097b8e90836b276df92fce54dd4b",
551
+ "tt/layer.py": "8421bd38ff7b99c7f7577df3eea9b498162fb2f37f806ba8effb0ec29cd4fc42",
552
  "tt/mlp.py": "f2878d396cc3d33edceb29634f34aa7a6d0d862ed99a148c7a85de861e05640f",
553
+ "tt/model.py": "f57d342bae7f12c2b747ef0e2faa37ff8a629390b4175b3f6c1a34df7f6d29cd",
554
  "tt/model_config.py": "7cde8ea2e52b3182c946d09814a6e29c681e16bcb96aca209703c6ea36690bba",
555
+ "tt/mtp.py": "c42c63842b9c1cdfde514392aface3957ab82daafcdc44f6f77290b3a1f23149",
556
+ "tt/mtp_wide.py": "36030eacfcec6f4ab3059439b9ab3bf7e0c03e965a6ec941c23c88041aadc996",
557
+ "tt/qwen36_vllm.py": "db5a21510df2cf7a5e2de827dc89ca628b72e8ecd98755e84a7b48abec75bbd0",
558
  "tt/residual_norm/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
559
  "tt/residual_norm/add_reader.cpp": "7f961e15e17d9406f27b3fe8d7b9e7e4b06a1270c5864e085ac9dfe43c050db3",
560
  "tt/residual_norm/add_writer.cpp": "341a1de54e0ca5e5070ee52ea9e95a7d3419678de166d0bdfd73f37e5f8184a4",
 
564
  "tt/residual_norm/norm_writer.cpp": "8d003aacbc9437b60b7f79d5489497b0a1b67d685ba273d813636c79da814655",
565
  "tt/rms_norm.py": "126f34cb9068f67ceb8adb5aef16b866e3ca0713a582c0aeeadb925199c7a983",
566
  "tt/rope.py": "baa056d37129f1fa97a444ba5f6d5f3a5cfd6c15402dcfad13d300b11f2cef26",
567
+ "tt/speculative.py": "6af3688b994fc3cb7a35f375714f6261ec5fd32eb53b3e9cdc67aa09baee758d",
568
+ "tt/speculative_dflash.py": "bda2243e3b9d21cf2706af84b10019f0d9eba0211bfbfe342b2931d07c55d498",
569
  "tt/speculative_dflash_tree.py": "71c5d60b7d4ad58e875255460de4312b6d0df89dba7fbcb1ed1ebf096dd003a1",
570
+ "tt/speculative_features.py": "f7b2bec63d6347179667f721175194a83e2df965341bc831cfd9e654958da88f",
571
+ "tt/speculative_tree.py": "e166d5342c9ee3a4ffa8a1780dfc9095f77d199283bf4a0ecc2eaafc4e421108",
572
  "tt/speculative_tree_kernel.cpp": "b11d91647cccded6c2db8fb735642ed429474081be6c8734e2b3c5350b94bd47",
573
  "tt/tp_common.py": "fbd33f88f6f2f280ca9558b923c3a07c4b734ad220f18756512661c4940b1120",
574
  "tt/verify_accept.py": "732ff5dc98f4d3f62b1a064029460c8d91c9f53bc1a7dd30cd39cf4cd289e5ae",
 
584
  "tt/vision/vision_mlp.py": "6c3c092c33df7cba0483b6ab88903f29a95f2fcecc723d3884e3cbe4effcd0e5",
585
  "tt/vision/vision_model_config.py": "bf1eb6f5d47243c46c33ee2c3506f6985131a379161d71a02b7bff88bdec5a4d",
586
  "tt/weight_mapping.py": "d7ad88592fb7de07d87fa0d10f9d1bd0d4dcc92856438fffc394f90e29e650d2",
587
+ "tt/weight_prefetch.py": "44a36308f1255e00298fd6937e02850e60b9690c19e33cad10dda134c30051a3",
588
  "utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
589
  "utils/substate.py": "813aa26dc9053e1217425a3cacf0c63255254f9d17723f3b5ac378167cfca28c"
590
  },
 
668
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/attention/verify_sdpa_writer.cpp": "1420fda2b698744fd1bea850e5d174525508e40b5f1b7012d547b95a32503cb9",
669
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/attention/weights.py": "18fd01c923c021b13ac5ac62cc4dbd4efd73e996fd571c13f9effe1d4dfb2e6a",
670
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/common.py": "4fb0b62e54f4da4df2013bb05a4504cbf35563e6c7d7ef1073740dff328e4289",
671
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/device_sampling.py": "f5f64caf6af6b8eaf82d0194053a8eb20786747e076993ed6236bed6ec63a6c2",
672
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/device_sampling_kernel.cpp": "386e32722ef4aee866e9e318d8ff1909cbd771c776310ac17f4b06a0fd01c3cc",
673
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/device_sampling_math.hpp": "e4da1c0be20b1fe965b8ae32ac170e35c844c94e60a096e02dec758eb0a289c2",
674
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash.py": "98a168c2830b0c54388cd8b9152653d3ca4985c30a29bfde673dcfab71cb553e",
675
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_cache.py": "4527bff02503ded90d306c0e2803766344999d6c7124273896392e3f12dd33a0",
676
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_cache_kernel.cpp": "5785fa2813e38d344207ada2a9764931bc19f0f7226ea39b356823d0b1111e17",
677
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops.py": "dfa7fd444764af30f048415df931d7abd656eda376c064564f97ec61e266b708",
678
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_conv.cpp": "1b8f09b1f2fcfd5c7fd5044c1cc4edf92f9439bb1b6f01537439aed31213b4ea",
679
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_retile.cpp": "e5f95225440d375d7ef205d6779d528842f72d68b2742f4350f20593427add08",
680
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/dflash_ops_select.cpp": "a8551b6df1c3fa63364ac80fb5a1a0f1cdb27ee5d56f35697dd4c3acbfe5a428",
 
687
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/batched_commit.py": "662f22c5e12cd6f3de738859a583d7ae58bd16ca0bf01902625d36e6e2e30bce",
688
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/batched_commit_kernel.cpp": "c5c7273afc48bb78de619cbd78933106405dd305d92bab4f26073d902aac178a",
689
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/config.py": "6eb29d94e32a91123237c34364ce164b2df78c4d3c3209daf3a63672435ebf9c",
690
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/decode.py": "2341f6509d6089149fa17316a813c5725f01915cb34089f543f83ec9a8202de2",
691
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_chunk.py": "1f2341a9d489b265873eb217ce9707eb6d282c19d8db0fbd63ae18cbe1a344ff",
692
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_commit.py": "f6a39a0567a139e9bb474b42448f442081b89496aa11de60df332d90928062f3",
693
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_commit_kernel.cpp": "b1070a5f132d732078f363be71d5bbb3c079ab8a96726d9599fe5a958983e205",
 
695
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_output.py": "9d1526651fee0fa1615f8f1ff1cb216f8157d8ebff2a223f3c4cde0b42fbec93",
696
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_output_bulk.cpp": "bec7e9c1059f25dd418587b970ae06f6785ae85335749108e63d9bb60c2121f6",
697
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/fused_verify_writer.cpp": "587b6b97749dafea21747929268a7bb6e6ff39308e08db75126d2469934d64f7",
698
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/gated_deltanet.py": "2348e35c78703b81ad1c43faab3a5d1b869bc3dd17abafa3add51b0e5d582db9",
699
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
700
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/fused_output.py": "bc197a97a1843575439c62a58e19b5be872f1a81ca01ead37ec919951e230e4c",
701
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/m1/layout_transport.hpp": "4bcbf870232095846b0a488a262300dfaa35bf4d37179a5f23cfe2a4fbffc92d",
 
713
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/tp.py": "72c1a2fe5d7b60b6740d42037c70ff2fe93a5e1fbaa3b5e18d629e2f4cd47de9",
714
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/verify_recurrence_compute.cpp": "4b1e526f26457b27b4dd4518faa871e2ad6d817a713ada40492d0aad56e919a8",
715
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/verify_recurrence_reader.cpp": "a01a4f62ed6771638312accdaa676f2f930aeae91f91c02567624c709f9af583",
716
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/gdn/weights.py": "ddd42b082bc0f6cda6b8168157764151e50c25ea7842ba85dc942ff13f1bd66a",
717
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/generator_interface.py": "22f669c793747ca90ac9dfee9fecdbd46835097b8e90836b276df92fce54dd4b",
718
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/layer.py": "8421bd38ff7b99c7f7577df3eea9b498162fb2f37f806ba8effb0ec29cd4fc42",
719
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mlp.py": "f2878d396cc3d33edceb29634f34aa7a6d0d862ed99a148c7a85de861e05640f",
720
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/model.py": "f57d342bae7f12c2b747ef0e2faa37ff8a629390b4175b3f6c1a34df7f6d29cd",
721
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/model_config.py": "7cde8ea2e52b3182c946d09814a6e29c681e16bcb96aca209703c6ea36690bba",
722
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mtp.py": "c42c63842b9c1cdfde514392aface3957ab82daafcdc44f6f77290b3a1f23149",
723
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/mtp_wide.py": "36030eacfcec6f4ab3059439b9ab3bf7e0c03e965a6ec941c23c88041aadc996",
724
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/qwen36_vllm.py": "db5a21510df2cf7a5e2de827dc89ca628b72e8ecd98755e84a7b48abec75bbd0",
725
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/__init__.py": "6c6ec57de9f82ef42d82760f144a4571cb16b3cd6de33aaa7aa9fd65e8ab1fa1",
726
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/add_reader.cpp": "7f961e15e17d9406f27b3fe8d7b9e7e4b06a1270c5864e085ac9dfe43c050db3",
727
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/add_writer.cpp": "341a1de54e0ca5e5070ee52ea9e95a7d3419678de166d0bdfd73f37e5f8184a4",
 
731
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/residual_norm/norm_writer.cpp": "8d003aacbc9437b60b7f79d5489497b0a1b67d685ba273d813636c79da814655",
732
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/rms_norm.py": "126f34cb9068f67ceb8adb5aef16b866e3ca0713a582c0aeeadb925199c7a983",
733
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/rope.py": "baa056d37129f1fa97a444ba5f6d5f3a5cfd6c15402dcfad13d300b11f2cef26",
734
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative.py": "6af3688b994fc3cb7a35f375714f6261ec5fd32eb53b3e9cdc67aa09baee758d",
735
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_dflash.py": "bda2243e3b9d21cf2706af84b10019f0d9eba0211bfbfe342b2931d07c55d498",
736
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_dflash_tree.py": "71c5d60b7d4ad58e875255460de4312b6d0df89dba7fbcb1ed1ebf096dd003a1",
737
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_features.py": "f7b2bec63d6347179667f721175194a83e2df965341bc831cfd9e654958da88f",
738
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_tree.py": "e166d5342c9ee3a4ffa8a1780dfc9095f77d199283bf4a0ecc2eaafc4e421108",
739
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/speculative_tree_kernel.cpp": "b11d91647cccded6c2db8fb735642ed429474081be6c8734e2b3c5350b94bd47",
740
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/tp_common.py": "fbd33f88f6f2f280ca9558b923c3a07c4b734ad220f18756512661c4940b1120",
741
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/verify_accept.py": "732ff5dc98f4d3f62b1a064029460c8d91c9f53bc1a7dd30cd39cf4cd289e5ae",
 
751
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/vision/vision_mlp.py": "6c3c092c33df7cba0483b6ab88903f29a95f2fcecc723d3884e3cbe4effcd0e5",
752
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/vision/vision_model_config.py": "bf1eb6f5d47243c46c33ee2c3506f6985131a379161d71a02b7bff88bdec5a4d",
753
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/weight_mapping.py": "d7ad88592fb7de07d87fa0d10f9d1bd0d4dcc92856438fffc394f90e29e650d2",
754
+ "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/tt/weight_prefetch.py": "44a36308f1255e00298fd6937e02850e60b9690c19e33cad10dda134c30051a3",
755
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
756
  "/home/container_app_user/tt-metal/models/demos/blackhole/qwen36/utils/substate.py": "813aa26dc9053e1217425a3cacf0c63255254f9d17723f3b5ac378167cfca28c",
757
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/fused_decay.py": "cedf357d4912d43a6e83218e823bf0cf4b204be5045e35e6cc253b1b41f7881d",
 
764
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/fused_normalization_kernel.cpp": "46f913c5e433840effe5ae9f6b03a2d29b384c5e18a0c272b796611faf3409c3",
765
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_delta_rule_ops.py": "ef302db6cba11d919255e44eef4c49d493d74ab42b4622dcc268102062fe0e48",
766
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_delta_rule_seq.py": "f2cd073b5c9e70f576820c7f13ed168ae8a529976d3f00b74cdb56faf809425e",
767
+ "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_gated_attention.py": "d3beb4a67a23d79f92a04221341be0e20d0af33abc86c20610a855cd1a733357",
768
  "/home/container_app_user/tt-metal/models/experimental/gated_attention_gated_deltanet/tt/ttnn_gated_deltanet.py": "e7a1096881df7060607efa1a65194bd121f77ba72d25bbf963980498c57b3e10",
769
  "/home/container_app_user/tt-metal/models/tt_transformers/tt/generator.py": "9a31bfdff4d97a37f3e78a48dfc2f8732e85b94edb19fe6909e8ec8e3661b7f4",
770
  "/home/container_app_user/tt-metal/native_checkpoint.py": "14138c43afd112ddc64ef943e361747d66cf6d43c29cf29b16dc2ef294f38719",
 
790
  "/home/container_app_user/tt-metal/ttnn/cpp/ttnn/operations/transformer/gated_delta_attn/device/kernels/compute/gated_delta_attn.cpp": "47880263c4524876553f66a72c023d9aa92fd3980d293b20ca992f00897effa4",
791
  "/home/container_app_user/tt-metal/ttnn/cpp/ttnn/operations/transformer/gated_delta_attn/device/kernels/dataflow/reader_gated_delta_attn.cpp": "7e1381e6764dd5aa51fb90582a6b499a0248a5272f6edeabf17418662bc4a603",
792
  "/home/container_app_user/tt-metal/ttnn/ttnn/_ttnn.so": "72446dcea0b262582d070e63561247ada40f25dd850cf66e249769b669991333",
793
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/async_decode.py": "189005f53ed55f63d2d2da0641a3913f6867873b557cc1c1edf4b3dbf866fb8c",
794
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/model_input.py": "a055ffc3488dde9e326d22829ab51826cb7a0fc46a5906e711d8119ccf023381",
795
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/model_runner.py": "5fc099bd29e7a310c6368a4491621a87c356d2ef0322ab34355270a1305f266c",
796
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/platform.py": "7ff78e8d83131bca34229e23170e80dd6efa3f33d5ba7ba3700e526a007a3930",
797
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/prefix_resume.py": "d72059cef63cc9401e921448dca272e13e624bb17e324d240d8bc5300d0714f5",
798
+ "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/scheduler.py": "a633623727c0bed5a89fcb48d9179323bbe2fb705ce10e7b24fa408848e1fe15",
799
  "/home/container_app_user/vllm/plugins/vllm-tt-plugin/src/vllm_tt_plugin/worker.py": "5c8c71bd386a34c13b992f6c57e89c10f6eac59843581750da9959b72420fb8d",
800
  "/home/container_app_user/vllm/vllm/config/speculative.py": "3529dc38addd480fd3358978ca3ddb33984c8949e1b4a54602b4d5f16423fc85",
801
  "/home/container_app_user/vllm/vllm/v1/core/sched/scheduler.py": "f2041ec2d6f148000df9d00647d578c16b7d0058191de013cce36015f1b63647",
evidence/previous-gptq-ctx2/public-download-verification.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "passed",
3
+ "repo": "Lottolabs/Qwen3.8-27B-TT-Mixed-BFP4-BFP8-P150",
4
+ "revision": "8659ecb6e97f8cc3201d96ee043eeea7095be9ab",
5
+ "anonymous": true,
6
+ "method": "fresh empty cache root; published launch.py --download-only (urllib, no HF token); every serving file re-hashed; archive docker-loaded",
7
+ "download_seconds": 14.9,
8
+ "resumed_after_interruption": true,
9
+ "files": 991,
10
+ "bytes": 31565861787,
11
+ "hash_mismatches": [],
12
+ "unexpected_files": [],
13
+ "sha256sums_disagreements": [],
14
+ "runtime_release_sha256": "8f110f51c7ae9d16762cee9f51913a9ac9d58ca211072302d4c9644d9fe41a62",
15
+ "runtime_archive": {
16
+ "bytes": 5619402462,
17
+ "sha256": "4c5f59c2efa748dc2d1e9fd98333aaf4c7a4294469cef64272662c07d5ca165d"
18
+ },
19
+ "docker_load": {
20
+ "returncode": 0,
21
+ "loaded_tag": "lottolabs/qwen27b-tt-p150:ctx2"
22
+ },
23
+ "image": "lottolabs/qwen27b-tt-p150:ctx2",
24
+ "image_id_expected": "sha256:53a2ae1582b312aeb247b4ca9f73e5b8eb1ddfb2710c3bc01c8837e33331336a",
25
+ "image_id_after_load": "sha256:53a2ae1582b312aeb247b4ca9f73e5b8eb1ddfb2710c3bc01c8837e33331336a",
26
+ "checkpoint_manifest_sha256": "47b781ab1550bf9c66c7d1a952a02eedafabbc2efc499dc67ff63728fc9f01da",
27
+ "draft_sha256": "67fc76d68dc5a9415511a4f394ef744d67510cd20e93b37cc2cc7d28e4bab65c",
28
+ "launcher_sha256": "67a1c501b4df6d5583f728cc69285f51d384dd9f6022e3bf261235084da5f3ee"
29
+ }
evidence/{public-serving-smoke-tput-2048 β†’ previous-gptq-ctx2/public-serving-smoke-tput-2048}/metrics-after.txt RENAMED
File without changes
evidence/{public-serving-smoke-tput-2048 β†’ previous-gptq-ctx2/public-serving-smoke-tput-2048}/metrics-before.txt RENAMED
File without changes
evidence/{public-serving-smoke-tput-2048 β†’ previous-gptq-ctx2/public-serving-smoke-tput-2048}/requests-2048-c1.json RENAMED
File without changes
evidence/{public-serving-smoke-tput-2048 β†’ previous-gptq-ctx2/public-serving-smoke-tput-2048}/summary.json RENAMED
File without changes
evidence/{public-serving-smoke-tput-2048 β†’ previous-gptq-ctx2/public-serving-smoke-tput-2048}/warmup-2048.json RENAMED
File without changes
evidence/previous-gptq-ctx2/public-serving-smoke.json ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "passed",
3
+ "repo": "Lottolabs/Qwen3.8-27B-TT-Mixed-BFP4-BFP8-P150",
4
+ "revision": "8659ecb6e97f8cc3201d96ee043eeea7095be9ab",
5
+ "image_id": "sha256:53a2ae1582b312aeb247b4ca9f73e5b8eb1ddfb2710c3bc01c8837e33331336a",
6
+ "launch": "published launch.py from the fresh download root, --revision <commit>, defaults (8,192 tokens, DFlash2 block 8)",
7
+ "server_ready_seconds": 480,
8
+ "chat": {
9
+ "http_status": 200,
10
+ "elapsed_seconds": 0.325,
11
+ "request": {
12
+ "model": "Qwen/Qwen3.8-27B",
13
+ "temperature": 0,
14
+ "max_tokens": 64,
15
+ "messages": [
16
+ {
17
+ "role": "user",
18
+ "content": "Reply with exactly: PUBLIC PACKAGE OK"
19
+ }
20
+ ],
21
+ "chat_template_kwargs": {
22
+ "enable_thinking": false
23
+ }
24
+ },
25
+ "response_id": "chatcmpl-a6980022ff151067",
26
+ "finish_reason": "stop",
27
+ "output": "PUBLIC PACKAGE OK",
28
+ "usage": {
29
+ "prompt_tokens": 19,
30
+ "total_tokens": 23,
31
+ "completion_tokens": 4,
32
+ "prompt_tokens_details": null
33
+ }
34
+ },
35
+ "throughput_2048": {
36
+ "probe": "probes/vllm_throughput.py --contexts 2048 --concurrency 1 --output-tokens 512 --min-requests 1",
37
+ "requests": 2,
38
+ "errors": 0,
39
+ "decode_tokens_per_second_p50": 48.042523833375334,
40
+ "ttft_seconds_p50": 1.6856095250113867,
41
+ "identical_to_non_speculative_reference": [
42
+ false,
43
+ false
44
+ ],
45
+ "reference": "evidence/verification/df8k/tp (pre-publication DFlash2 8K run of the same build); identical_to_non_speculative_reference is expected false on this runtime (speculative != non-speculative M=1 decode)",
46
+ "pre_publication_dflash_8k_decode_tokens_per_second_p50": 48.134522639575884,
47
+ "identical_to_pre_publication_dflash_8k": [
48
+ true,
49
+ true
50
+ ],
51
+ "pre_publication_dflash_8k_texts_all_equal": true
52
+ },
53
+ "scoring_note": "Rescored from the saved probe outputs: the first scoring compared against the non-speculative reference, which differs from every speculative profile by design.",
54
+ "tensor_cache": "--tensor-cache seeded by hardlinks from the pre-publication DFlash2 8K cache of the same manifest/image/draft (host disk limit); every downloaded file was hash-verified"
55
+ }
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/launch-command.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/metrics-after-1.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/metrics-before-1.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/metrics-start.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/probe-1.log RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/metrics-after.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/metrics-before.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/requests-128-c1.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/requests-2048-c1.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/summary.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/warmup-128.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/b2ns8k/tp/warmup-2048.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/exact.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/launch-command.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/lc.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-after-1.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-after-2.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-after-3.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-after-4.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-after-5.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-before-1.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-before-2.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-before-3.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-before-4.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-before-5.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/metrics-start.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/probe-1.log RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/probe-2.log RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/probe-3.log RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/probe-4.log RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/probe-5.log RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/metrics-after.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/metrics-before.txt RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/requests-128-c1.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/requests-2048-c1.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/summary.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/warmup-128.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp/warmup-2048.json RENAMED
File without changes
evidence/{verification β†’ previous-gptq-ctx2/verification}/df128k/tp128k/metrics-after.txt RENAMED
File without changes